1. 23 Aug, 2022 6 commits
    • Mark Brown's avatar
      Add support for TI TPS65219 PMIC. · 8622817c
      Mark Brown authored
      Merge series from Jerome Neanne <jneanne@baylibre.com>:
      
      This driver supports
      - 3 Buck regulators and 4 LDOs
      - low-power standby mode
      - warm/soft reset
      - basic fault handling (via interrupts).
      - power button
      
      Not implemented
      - DVS
      
      1-Regulators:
      Full implementation and test
      Visual check: cat /sys/kernel/debug/regulator/regulator_summary
      Full validation requires userspace-consumer and virtual-regulator
      LDO1 is not used and output can be probbed on TP84.
      8622817c
    • Mark Brown's avatar
      Use devm helpers for regulator get and enable · a2740378
      Mark Brown authored
      Merge series from Matti Vaittinen <mazziesaccount@gmail.com>:
      
      Use devm helpers for regulator get and enable
      
      NOTE: The series depends on commit
      ee94aff2 ("Devm helpers for regulator get and enable")
      which currently sits in Mark's regulator/for-next
      
      A few* drivers seem to pattern demonstrated by pseudocode:
      
      - devm_regulator_get()
      - regulator_enable()
      - devm_add_action_or_reset(regulator_disable())
      
      devm helpers for this pattern were added to remove bunch of code from
      drivers. Typically following:
      
      - replace 3 calls (devm_regulator_get[_optional](), regulator_enable(),
        devm_add_action_or_reset()) with just one
        (devm_regulator_get_enable[_optional]()).
      - drop disable callback.
      
      I believe this simplifies things by removing some dublicated code.
      
      This series reowrks a few drivers. There is still plenty of fish in the
      sea for people who like to improve the code (or count the beans ;]).
      
      Finally - most of the converted drivers have not been tested (other than
      compile-tested) due to lack of HW. All reviews and testing is _highly_
      appreciated (as always!).
      
      Revision history:
      
      v3:
      	- Drop already applied helper patches
      	- Add a few more drivers
      
      RFCv1 => v2:
      	- Add devm_regulator_bulk_get_enable() and
      	  devm_regulator_bulk_put()
      	- Convert a couple of drivers to use the new
      	  devm_regulator_bulk_get_enable().
      	- Squash all IIO patches into one.
      
      Patch 1:
      	Add new devm-helper APIs to docs.
      Patch 2:
      	simplified CLK driver(s)
      Patch 3:
      	simplified GPU driver(s)
      Patch 4 - 5:
      	simplified hwmon driver(s)
      Patch 6 - 14:
      	simplified IIO driver(s)
      
      ---
      
      Matti Vaittinen (14):
        docs: devres: regulator: Add new get_enable functions to devres.rst
        clk: cdce925: simplify using devm_regulator_get_enable()
        gpu: drm: simplify drivers using devm_regulator_*get_enable*()
        hwmon: lm90: simplify using devm_regulator_get_enable()
        hwmon: adm1177: simplify using devm_regulator_get_enable()
        iio: ad7192: Simplify using devm_regulator_get_enable()
        iio: ltc2688: Simplify using devm_regulator_*get_enable()
        iio: bmg160_core: Simplify using devm_regulator_*get_enable()
        iio: st_lsm6dsx: Simplify using devm_regulator_*get_enable()
        iio: ad7476: simplify using devm_regulator_get_enable()
        iio: ad7606: simplify using devm_regulator_get_enable()
        iio: max1241: simplify using devm_regulator_get_enable()
        iio: max1363: simplify using devm_regulator_get_enable()
        iio: hmc425a: simplify using devm_regulator_get_enable()
      
       .../driver-api/driver-model/devres.rst        |  4 +++
       drivers/clk/clk-cdce925.c                     | 21 +++----------
       drivers/gpu/drm/bridge/sii902x.c              | 22 ++------------
       drivers/gpu/drm/meson/meson_dw_hdmi.c         | 23 ++------------
       drivers/hwmon/adm1177.c                       | 27 ++---------------
       drivers/hwmon/lm90.c                          | 15 ++--------
       drivers/iio/adc/ad7192.c                      | 15 ++--------
       drivers/iio/adc/ad7476.c                      | 11 +------
       drivers/iio/adc/ad7606.c                      | 22 ++------------
       drivers/iio/adc/ad7606.h                      |  1 -
       drivers/iio/adc/max1241.c                     | 28 ++---------------
       drivers/iio/adc/max1363.c                     | 11 +------
       drivers/iio/amplifiers/hmc425a.c              | 17 +----------
       drivers/iio/dac/ltc2688.c                     | 23 ++------------
       drivers/iio/gyro/bmg160_core.c                | 24 ++-------------
       drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h       |  2 --
       drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c  | 30 ++++---------------
       17 files changed, 41 insertions(+), 255 deletions(-)
      
      --
      2.37.1
      
      --
      Matti Vaittinen, Linux device drivers
      ROHM Semiconductors, Finland SWDC
      Kiviharjunlenkki 1E
      90220 OULU
      FINLAND
      
      ~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
      Simon says - in Latin please.
      ~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
      Thanks to Simon Glass for the translation =]
      a2740378
    • Jerome Neanne's avatar
      regulator: drivers: Add TI TPS65219 PMIC regulators support · c12ac5fc
      Jerome Neanne authored
      The regulators set consists of 3 bucks DCDCs and 4 LDOs. The output
      voltages are configurable and are meant to supply power to the
      main processor and other components.
      
      Validation:
      Visual check: cat /sys/kernel/debug/regulator/regulator_summary
      Validation: userspace-consumer and virtual-regulator required
      to test further
      
      Enable/Disable:
      cat /sys/devices/platform/userspace-consumer-VDDSHV_SD_IO_PMIC/state
      echo disabled > /sys/devices/platform/
      userspace-consumer-VDDSHV_SD_IO_PMIC/state
      echo enabled > /sys/devices/platform/
      userspace-consumer-VDDSHV_SD_IO_PMIC/state
      
      Change voltage:
      cat /sys/devices/platform/regulator-virtual-ldo1/min_microvolts
      echo 1000000 > /sys/devices/platform/regulator-virtual-ldo1/
      min_microvolts
      echo 3000000 > /sys/devices/platform/regulator-virtual-ldo1/
      max_microvolts
      Signed-off-by: default avatarJerome Neanne <jneanne@baylibre.com>
      Link: https://lore.kernel.org/r/20220805121852.21254-9-jneanne@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      c12ac5fc
    • Jerome Neanne's avatar
      regulator: dt-bindings: Add TI TPS65219 PMIC bindings · 4d2aed6e
      Jerome Neanne authored
      Add TPS65219 PMIC bindings using json-schema.
      
      Describe required properties and regname-supply.
      regname-supply is required when bypass mode is used for a regulator.
      Describes regulator topology.
      Interrupts support.
      Add a power-button property to configure the EN/PB/VSENSE pin as a
      powerbutton:
      
      TPS65219 has a multipurpose pin called EN/PB/VSENSE that can be either:
      - EN in which case it functions as an enable pin.
      - VSENSE which compares the voltages and triggers an automatic
      on/off request.
      - PB in which case it can be configured to trigger an interrupt
      to the SoC.
      ti,power-button reflects the last one of those options
      where the board has a button wired to the pin and triggers
      an interrupt on pressing it.
      Signed-off-by: default avatarMarkus Schneider-Pargmann <msp@baylibre.com>
      Signed-off-by: default avatarJerome Neanne <jneanne@baylibre.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20220805121852.21254-5-jneanne@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      4d2aed6e
    • Rob Herring's avatar
      regulator: dt-bindings: Add missing (unevaluated|additional)Properties on child nodes · de6fbef1
      Rob Herring authored
      In order to ensure only documented properties are present, node schemas
      must have unevaluatedProperties or additionalProperties set to false
      (typically).
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20220823145649.3118479-7-robh@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      de6fbef1
    • Matti Vaittinen's avatar
      docs: devres: regulator: Add new get_enable functions to devres.rst · 9048b991
      Matti Vaittinen authored
      Add the new devm_regulator_get_enable() and
      devm_regulator_get_enable_optional() to devres.rst
      Signed-off-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
      Link: https://lore.kernel.org/r/55efb5a23822b8e1558d560a6ad906eadbc39a17.1660934107.git.mazziesaccount@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      9048b991
  2. 22 Aug, 2022 1 commit
  3. 18 Aug, 2022 3 commits
    • Christian Kohlschütter's avatar
      regulator: core: Resolve supply name earlier to prevent double-init · 8a866d52
      Christian Kohlschütter authored
      Previously, an unresolved regulator supply reference upon calling
      regulator_register on an always-on or boot-on regulator caused
      set_machine_constraints to be called twice.
      
      This in turn may initialize the regulator twice, leading to voltage
      glitches that are timing-dependent. A simple, unrelated configuration
      change may be enough to hide this problem, only to be surfaced by
      chance.
      
      One such example is the SD-Card voltage regulator in a NanoPI R4S that
      would not initialize reliably unless the registration flow was just
      complex enough to allow the regulator to properly reset between calls.
      
      Fix this by re-arranging regulator_register, trying resolve the
      regulator's supply early enough that set_machine_constraints does not
      need to be called twice.
      Signed-off-by: default avatarChristian Kohlschütter <christian@kohlschutter.com>
      Link: https://lore.kernel.org/r/20220818124646.6005-1-christian@kohlschutter.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      8a866d52
    • Mark Brown's avatar
      Devm helpers for regulator get and enable · ee94aff2
      Mark Brown authored
      Merge series from Matti Vaittinen <mazziesaccount@gmail.com>:
      
      A few* drivers seem to use pattern demonstrated by pseudocode:
      
      - devm_regulator_get()
      - regulator_enable()
      - devm_add_action_or_reset(regulator_disable())
      
      Introducing devm helpers for this pattern would remove bunch of code from
      drivers. Typically following:
      
      - replace 3 calls (devm_regulator_get[_optional](), regulator_enable(),
        devm_add_action_or_reset()) with just one
        (devm_regulator_get_enable[_optional]()).
      - drop disable callback.
      - remove stored pointer to struct regulator - which can lead to problem
        when an devm action for regulator_disable is used.
      
      I believe this simplifies things by removing some dublicated code.
      
      The suggested managed 'get_enable' APIs do not return the pointer to
      regulators for user because any call to regulator_disable()
      (or regulator_enable()) may easily lead to regulator enable count imbalance
      upon device detach. (Eg, if someone calls regulator_disable() and the
      device is then detached before user has re-enabled the regulator). Not
      returning the pointer to obtained regulator to caller is a good hint that
      the enable/disable should not be manually handled when these APIs are used.
      
      OTOH, not returning the pointer reduces the use-cases by not allowing
      the consumers to perform other regulator actions. For example request the
      voltages. A few drivers which used the "get, enable,
      devm_action_to_disable" did also query the voltages. The API does not suit
      needs of such users.
      ee94aff2
    • Matti Vaittinen's avatar
      regulator: Add devm helpers for get and enable · da279e69
      Matti Vaittinen authored
      A few regulator consumer drivers seem to be just getting a regulator,
      enabling it and registering a devm-action to disable the regulator at
      the driver detach and then forget about it.
      
      We can simplify this a bit by adding a devm-helper for this pattern.
      Add devm_regulator_get_enable() and devm_regulator_get_enable_optional()
      Signed-off-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
      Link: https://lore.kernel.org/r/ed7b8841193bb9749d426f3cb3b199c9460794cd.1660292316.git.mazziesaccount@gmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      da279e69
  4. 15 Aug, 2022 2 commits
  5. 14 Aug, 2022 11 commits
    • Mark Brown's avatar
    • Linus Torvalds's avatar
      Linux 6.0-rc1 · 568035b0
      Linus Torvalds authored
      568035b0
    • Yury Norov's avatar
      radix-tree: replace gfp.h inclusion with gfp_types.h · 9f162193
      Yury Norov authored
      Radix tree header includes gfp.h for __GFP_BITS_SHIFT only. Now we
      have gfp_types.h for this.
      
      Fixes powerpc allmodconfig build:
      
         In file included from include/linux/nodemask.h:97,
                          from include/linux/mmzone.h:17,
                          from include/linux/gfp.h:7,
                          from include/linux/radix-tree.h:12,
                          from include/linux/idr.h:15,
                          from include/linux/kernfs.h:12,
                          from include/linux/sysfs.h:16,
                          from include/linux/kobject.h:20,
                          from include/linux/pci.h:35,
                          from arch/powerpc/kernel/prom_init.c:24:
         include/linux/random.h: In function 'add_latent_entropy':
      >> include/linux/random.h:25:46: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'?
            25 |         add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
               |                                              ^~~~~~~~~~~~~~
               |                                              add_latent_entropy
         include/linux/random.h:25:46: note: each undeclared identifier is reported only once for each function it appears in
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Jason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: default avatarYury Norov <yury.norov@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f162193
    • Linus Torvalds's avatar
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 74cbb480
      Linus Torvalds authored
      Pull vfs lseek fix from Al Viro:
       "Fix proc_reg_llseek() breakage. Always had been possible if somebody
        left NULL ->proc_lseek, became a practical issue now"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        take care to handle NULL ->proc_lseek()
      74cbb480
    • Al Viro's avatar
      take care to handle NULL ->proc_lseek() · 3f61631d
      Al Viro authored
      Easily done now, just by clearing FMODE_LSEEK in ->f_mode
      during proc_reg_open() for such entries.
      
      Fixes: 868941b1 "fs: remove no_llseek"
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3f61631d
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5d6a0f4d
      Linus Torvalds authored
      Pull more xen updates from Juergen Gross:
      
       - fix the handling of the "persistent grants" feature negotiation
         between Xen blkfront and Xen blkback drivers
      
       - a cleanup of xen.config and adding xen.config to Xen section in
         MAINTAINERS
      
       - support HVMOP_set_evtchn_upcall_vector, which is more compliant to
         "normal" interrupt handling than the global callback used up to now
      
       - further small cleanups
      
      * tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: add xen config fragments to XEN HYPERVISOR sections
        xen: remove XEN_SCRUB_PAGES in xen.config
        xen/pciback: Fix comment typo
        xen/xenbus: fix return type in xenbus_file_read()
        xen-blkfront: Apply 'feature_persistent' parameter when connect
        xen-blkback: Apply 'feature_persistent' parameter when connect
        xen-blkback: fix persistent grants negotiation
        x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
      5d6a0f4d
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of... · 96f86ff0
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
      
       - 'perf c2c' now supports ARM64, adjust its output to cope with
         differences with what is in x86_64. Now go find false sharing on
         ARM64 (at least Neoverse) as well!
      
       - Refactor the JSON processing, making the output more compact and thus
         reducing the size of the resulting perf binary
      
       - Improvements for 'perf offcpu' profiling, including tracking child
         processes
      
       - Update Intel JSON metrics and events files for broadwellde,
         broadwellx, cascadelakex, haswellx, icelakex, ivytown, jaketown,
         knightslanding, sapphirerapids, skylakex and snowridgex
      
       - Add 'perf stat' JSON output and a 'perf test' entry for it
      
       - Ignore memfd and anonymous mmap events if jitdump present
      
       - Refactor 'perf test' shell tests allowing subdirs
      
       - Fix an error handling path in 'parse_perf_probe_command()'
      
       - Fixes for the guest Intel PT tracing patchkit in the 1st batch of
         this merge window
      
       - Print debuginfod queries if -v option is used, to explain delays in
         processing when debuginfo servers are enabled to fetch DSOs with
         richer symbol tables
      
       - Improve error message for 'perf record -p not_existing_pid'
      
       - Fix openssl and libbpf feature detection
      
       - Add PMU pai_crypto event description for IBM z16 on 'perf list'
      
       - Fix typos and duplicated words on comments in various places
      
      * tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (81 commits)
        perf test: Refactor shell tests allowing subdirs
        perf vendor events: Update events for snowridgex
        perf vendor events: Update events and metrics for skylakex
        perf vendor events: Update metrics for sapphirerapids
        perf vendor events: Update events for knightslanding
        perf vendor events: Update metrics for jaketown
        perf vendor events: Update metrics for ivytown
        perf vendor events: Update events and metrics for icelakex
        perf vendor events: Update events and metrics for haswellx
        perf vendor events: Update events and metrics for cascadelakex
        perf vendor events: Update events and metrics for broadwellx
        perf vendor events: Update metrics for broadwellde
        perf jevents: Fold strings optimization
        perf jevents: Compress the pmu_events_table
        perf metrics: Copy entire pmu_event in find metric
        perf pmu-events: Hide the pmu_events
        perf pmu-events: Don't assume pmu_event is an array
        perf pmu-events: Move test events/metrics to JSON
        perf test: Use full metric resolution
        perf pmu-events: Hide pmu_events_map
        ...
      96f86ff0
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d785610f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Ensure we never emit lwarx with EH=1 on 32-bit, because some 32-bit
         CPUs trap on it rather than ignoring it as they should.
      
       - Fix ftrace when building with clang, which was broken by some
         refactoring.
      
       - A couple of other minor fixes.
      
      Thanks to Christophe Leroy, Naveen N.  Rao, Nick Desaulniers, Ondrej
      Mosnacek, Pali Rohár, Russell Currey, and Segher Boessenkool.
      
      * tag 'powerpc-6.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix build failure from uninitialised variable
        powerpc/ppc-opcode: Fix PPC_RAW_TW()
        powerpc64/ftrace: Fix ftrace for clang builds
        powerpc: Make eh value more explicit when using lwarx
        powerpc: Don't hide eh field of lwarx behind a macro
        powerpc: Fix eh field when calling lwarx on PPC32
      d785610f
    • Linus Torvalds's avatar
      Merge tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · aea23e7c
      Linus Torvalds authored
      Pull /proc/mounts fix from Al Viro:
       "Fix for /proc/mounts escaping - escape the '#' character too"
      
      * tag 'pull-work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: escape hash as well
      aea23e7c
    • Linus Torvalds's avatar
      Merge tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · 332019e2
      Linus Torvalds authored
      Pull more cifs updates from Steve French:
      
       - two fixes for stable, one for a lock length miscalculation, and
         another fixes a lease break timeout bug
      
       - improvement to handle leases, allows the close timeout to be
         configured more safely
      
       - five restructuring/cleanup patches
      
      * tag '5.20-rc-smb3-client-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not access tcon->cfids->cfid directly from is_path_accessible
        cifs: Add constructor/destructors for tcon->cfid
        SMB3: fix lease break timeout when multiple deferred close handles for the same file.
        smb3: allow deferred close timeout to be configurable
        cifs: Do not use tcon->cfid directly, use the cfid we get from open_cached_dir
        cifs: Move cached-dir functions into a separate file
        cifs: Remove {cifs,nfs}_fscache_release_page()
        cifs: fix lock length calculation
      332019e2
    • David Howells's avatar
      afs: Enable multipage folio support · 8549a263
      David Howells authored
      Enable multipage folio support for the afs filesystem.
      
      Support has already been implemented in netfslib, fscache and cachefiles
      and in most of afs, but I've waited for Matthew Wilcox's latest folio
      changes.
      
      Note that it does require a change to afs_write_begin() to return the
      correct subpage.  This is a "temporary" change as we're working on
      getting rid of the need for ->write_begin() and ->write_end()
      completely, at least as far as network filesystems are concerned - but
      it doesn't prevent afs from making use of the capability.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Tested-by: kafs-testing@auristor.com
      Cc: Marc Dionne <marc.dionne@auristor.com>
      Cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/lkml/2274528.1645833226@warthog.procyon.org.uk/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8549a263
  6. 13 Aug, 2022 17 commits