]> Git Repo - J-linux.git/commitdiff
Merge tag 'hwmon-for-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck...
authorLinus Torvalds <[email protected]>
Wed, 18 Sep 2024 10:40:48 +0000 (12:40 +0200)
committerLinus Torvalds <[email protected]>
Wed, 18 Sep 2024 10:40:48 +0000 (12:40 +0200)
Pull hwmon updates from Guenter Roeck:
 "New drivers:
   - driver for Sophgo SG2042 external hardware monitor
   - thermal sensor driver for Surface Aggregator Module

  Added support to existing drivers:
   - oxp-sensors: Support for multiple new devices.
   - nct6775: Added G15CF to ASUS WMI monitoring list

  Modernizations:
   - driver cleanup and update to use with_info API: ina2xx, lm92,
     lm95234, max1619, max1668, and max6697.

  API updates:
   - removed unused devm_hwmon_device_unregister() API function

  Other notable changes
   - implement and use generic bus access delay for pmbus drivers
   - use with scoped for each OF child loop in several drivers
   - module unloading fixes for gsc-hwmon and ntc_thermistor drivers
   - converted various drivers to use multi-byte regmap operations
   - adt7475: Improved devicetree based configuration
   - ltc2947: Move to firmware agnostic API
   - ltc2978: Converted devicetree description to yaml
   - max16065: Addressed overflows when writing limit attributes

  Various other minor cleanups, fixes and improvements"

* tag 'hwmon-for-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (96 commits)
  hwmon: Remove devm_hwmon_device_unregister() API function
  hwmon: (sch5636) Print unknown ID in error string via %*pE
  hwmon: (sht21) Use %*ph to print small buffer
  hwmon: (pmbus/mpq7932) Constify struct regulator_desc
  hwmon: pmbus: pli12096bc: Add write delay
  hwmon: pmbus: zl6100: Use generic code
  hwmon: pmbus: ucd9000: Use generic code
  hwmon: pmbus: max15301: Use generic code
  hwmon: pmbus: Implement generic bus access delay
  hwmon: (ina2xx) Use shunt voltage to calculate current
  hwmon: (ina2xx) Add support for current limits
  hwmon: (ina2xx) Pass register to alert limit write functions
  hwmon: (ina2xx) Convert to use with_info hwmon API
  hwmon: (ina2xx) Move ina2xx_get_value()
  hwmon: (ina2xx) Set alert latch
  hwmon: (ina2xx) Consolidate chip initialization code
  hwmon: (ina2xx) Fix various overflow issues
  hwmon: (ina2xx) Re-initialize chip using regmap functions
  hwmon: (ina2xx) Use local regmap pointer if used more than once
  hwmon: (ina2xx) Mark regmap_config as const
  ...

1  2 
MAINTAINERS
drivers/hwmon/adt7475.c
drivers/hwmon/k10temp.c
drivers/hwmon/pmbus/pmbus.h
drivers/hwmon/pmbus/pmbus_core.c

diff --combined MAINTAINERS
index a470a2adee99f50675fb22c2b93f31a69d4eec50,39c61db0169c7fe025ba053a1a691a2baae524cc..12d7e989d4028945f2d2c460fc6fc6aed88e5410
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/acpi/arm64
 +F:    include/linux/acpi_iort.h
  
  ACPI FOR RISC-V (ACPI/riscv)
  M:    Sunil V L <[email protected]>
@@@ -538,17 -537,6 +538,17 @@@ F:       drivers/leds/leds-adp5520.
  F:    drivers/mfd/adp5520.c
  F:    drivers/video/backlight/adp5520_bl.c
  
 +ADP5585 GPIO EXPANDER, PWM AND KEYPAD CONTROLLER DRIVER
 +M:    Laurent Pinchart <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/*/adi,adp5585*.yaml
 +F:    drivers/gpio/gpio-adp5585.c
 +F:    drivers/mfd/adp5585.c
 +F:    drivers/pwm/pwm-adp5585.c
 +F:    include/linux/mfd/adp5585.h
 +
  ADP5588 QWERTY KEYPAD AND IO EXPANDER DRIVER (ADP5588/ADP5587)
  M:    Michael Hennerich <[email protected]>
  S:    Supported
@@@ -1165,13 -1153,6 +1165,13 @@@ S:    Supporte
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
  F:    drivers/net/ethernet/amd/xgbe/
  
 +AMLOGIC BLUETOOTH DRIVER
 +M:    Yang Li <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/bluetooth/amlogic,w155s2-bt.yaml
 +F:    drivers/bluetooth/hci_aml.c
 +
  AMLOGIC DDR PMU DRIVER
  M:    Jiucheng Xu <[email protected]>
  L:    [email protected]
@@@ -1221,13 -1202,6 +1221,13 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
  F:    drivers/iio/dac/ad3552r.c
  
 +ANALOG DEVICES INC AD4000 DRIVER
 +M:    Marcelo Schmitt <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml
 +
  ANALOG DEVICES INC AD4130 DRIVER
  M:    Cosmin Tanislav <[email protected]>
  L:    [email protected]
@@@ -1635,14 -1609,6 +1635,14 @@@ F:    Documentation/admin-guide/perf/xgene
  F:    Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt
  F:    drivers/perf/xgene_pmu.c
  
 +APPLIED MICRO QT2025 PHY DRIVER
 +M:    FUJITA Tomonori <[email protected]>
 +R:    Trevor Gross <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/phy/qt2025.rs
 +
  APTINA CAMERA SENSOR PLL
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
@@@ -1771,17 -1737,6 +1771,17 @@@ F:    drivers/mtd/maps/physmap-versatile.
  F:    drivers/power/reset/arm-versatile-reboot.c
  F:    drivers/soc/versatile/
  
 +ARM INTERCONNECT PMU DRIVERS
 +M:    Robin Murphy <[email protected]>
 +S:    Supported
 +F:    Documentation/admin-guide/perf/arm-cmn.rst
 +F:    Documentation/admin-guide/perf/arm-ni.rst
 +F:    Documentation/devicetree/bindings/perf/arm,cmn.yaml
 +F:    Documentation/devicetree/bindings/perf/arm,ni.yaml
 +F:    drivers/perf/arm-cmn.c
 +F:    drivers/perf/arm-ni.c
 +F:    tools/perf/pmu-events/arch/arm64/arm/cmn/
 +
  ARM KOMEDA DRM-KMS DRIVER
  M:    Liviu Dudau <[email protected]>
  S:    Supported
@@@ -1925,10 -1880,6 +1925,10 @@@ F:    Documentation/devicetree/bindings/io
  F:    drivers/iommu/arm/
  F:    drivers/iommu/io-pgtable-arm*
  
 +ARM SMMU SVA SUPPORT
 +R:    Jean-Philippe Brucker <[email protected]>
 +F:    drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
 +
  ARM SUB-ARCHITECTURES
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -2584,7 -2535,8 +2584,7 @@@ L:      [email protected]
  S:    Supported
  W:    http://www.linux4sam.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux.git
 -F:    arch/arm/boot/dts/microchip/at91*
 -F:    arch/arm/boot/dts/microchip/sama*
 +F:    arch/arm/boot/dts/microchip/
  F:    arch/arm/include/debug/at91.S
  F:    arch/arm/mach-at91/
  F:    drivers/memory/atmel*
@@@ -2793,7 -2745,7 +2793,7 @@@ F:      include/linux/soc/qcom
  
  ARM/QUALCOMM SUPPORT
  M:    Bjorn Andersson <[email protected]>
 -M:    Konrad Dybcio <konrad.dybcio@linaro.org>
 +M:    Konrad Dybcio <konradybcio@kernel.org>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@@@ -3552,9 -3504,7 +3552,9 @@@ S:      Maintaine
  W:    http://linux-atm.sourceforge.net
  F:    drivers/atm/
  F:    include/linux/atm*
 +F:    include/linux/sonet.h
  F:    include/uapi/linux/atm*
 +F:    include/uapi/linux/sonet.h
  
  ATMEL MACB ETHERNET DRIVER
  M:    Nicolas Ferre <[email protected]>
@@@ -3831,9 -3781,10 +3831,9 @@@ F:     Documentation/filesystems/befs.rs
  F:    fs/befs/
  
  BFQ I/O SCHEDULER
 -M:    Paolo Valente <[email protected]>
 -M:    Jens Axboe <[email protected]>
 +M:    Yu Kuai <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    Documentation/block/bfq-iosched.rst
  F:    block/bfq-*
  
@@@ -3912,7 -3863,7 +3912,7 @@@ F:      kernel/trace/blktrace.
  F:    lib/sbitmap.c
  
  BLOCK LAYER DEVICE DRIVER API [RUST]
 -M:    Andreas Hindborg <a.hindborg@samsung.com>
 +M:    Andreas Hindborg <a.hindborg@kernel.org>
  R:    Boqun Feng <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -5355,7 -5306,7 +5355,7 @@@ F:      drivers/media/cec/i2c/ch7322.
  CIRRUS LOGIC AUDIO CODEC DRIVERS
  M:    David Rhodes <[email protected]>
  M:    Richard Fitzgerald <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/cirrus,cs*
@@@ -5424,7 -5375,7 +5424,7 @@@ F:      sound/soc/codecs/lochnagar-sc.
  CIRRUS LOGIC MADERA CODEC DRIVERS
  M:    Charles Keepax <[email protected]>
  M:    Richard Fitzgerald <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  L:    [email protected]
  S:    Supported
  W:    https://github.com/CirrusLogic/linux-drivers/wiki
@@@ -5747,12 -5698,9 +5747,12 @@@ S:    Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
  F:    Documentation/admin-guide/cgroup-v1/cpusets.rst
  F:    include/linux/cpuset.h
 +F:    kernel/cgroup/cpuset-internal.h
 +F:    kernel/cgroup/cpuset-v1.c
  F:    kernel/cgroup/cpuset.c
  F:    tools/testing/selftests/cgroup/test_cpuset.c
  F:    tools/testing/selftests/cgroup/test_cpuset_prs.sh
 +F:    tools/testing/selftests/cgroup/test_cpuset_v1_base.sh
  
  CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
  M:    Johannes Weiner <[email protected]>
@@@ -5871,9 -5819,6 +5871,9 @@@ CPU POWER MONITORING SUBSYSTE
  M:    Thomas Renninger <[email protected]>
  M:    Shuah Khan <[email protected]>
  M:    Shuah Khan <[email protected]>
 +M:    John B. Wyatt IV <[email protected]>
 +M:    John B. Wyatt IV <[email protected]>
 +M:    John Kacur <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    tools/power/cpupower/
@@@ -6006,7 -5951,6 +6006,7 @@@ F:      Documentation/process/cve.rs
  CW1200 WLAN driver
  S:    Orphan
  F:    drivers/net/wireless/st/cw1200/
 +F:    include/linux/platform_data/net-cw1200.h
  
  CX18 VIDEO4LINUX DRIVER
  M:    Andy Walls <[email protected]>
@@@ -6556,7 -6500,6 +6556,7 @@@ F:      Documentation/devicetree/bindings/re
  F:    Documentation/devicetree/bindings/regulator/dlg,da9*.yaml
  F:    Documentation/devicetree/bindings/regulator/dlg,slg51000.yaml
  F:    Documentation/devicetree/bindings/sound/da[79]*.txt
 +F:    Documentation/devicetree/bindings/sound/dlg,da7213.yaml
  F:    Documentation/devicetree/bindings/thermal/dlg,da9062-thermal.yaml
  F:    Documentation/devicetree/bindings/watchdog/dlg,da9062-watchdog.yaml
  F:    Documentation/hwmon/da90??.rst
@@@ -6768,7 -6711,6 +6768,7 @@@ DOCUMENTATION PROCES
  M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/dev-tools/
  F:    Documentation/maintainer/
  F:    Documentation/process/
  
@@@ -6776,7 -6718,6 +6776,7 @@@ DOCUMENTATION REPORTING ISSUE
  M:    Thorsten Leemhuis <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/admin-guide/bug-bisect.rst
  F:    Documentation/admin-guide/quickly-build-trimmed-linux.rst
  F:    Documentation/admin-guide/reporting-issues.rst
  F:    Documentation/admin-guide/verify-bugs-and-bisect-regressions.rst
@@@ -7165,7 -7106,7 +7165,7 @@@ F:      drivers/gpu/drm/tiny/panel-mipi-dbi.
  DRM DRIVER for Qualcomm Adreno GPUs
  M:    Rob Clark <[email protected]>
  R:    Sean Paul <[email protected]>
 -R:    Konrad Dybcio <konrad.dybcio@linaro.org>
 +R:    Konrad Dybcio <konradybcio@kernel.org>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected]
@@@ -7511,8 -7452,8 +7511,8 @@@ S:      Maintaine
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
  F:    Documentation/devicetree/bindings/display/bridge/
  F:    drivers/gpu/drm/bridge/
 +F:    drivers/gpu/drm/display/drm_bridge_connector.c
  F:    drivers/gpu/drm/drm_bridge.c
 -F:    drivers/gpu/drm/drm_bridge_connector.c
  F:    include/drm/drm_bridge.h
  F:    include/drm/drm_bridge_connector.h
  
@@@ -8398,7 -8339,6 +8398,7 @@@ F:      include/linux/mii.
  F:    include/linux/of_net.h
  F:    include/linux/phy.h
  F:    include/linux/phy_fixed.h
 +F:    include/linux/phy_link_topology.h
  F:    include/linux/phylib_stubs.h
  F:    include/linux/platform_data/mdio-bcm-unimac.h
  F:    include/linux/platform_data/mdio-gpio.h
@@@ -8414,7 -8354,6 +8414,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    rust/kernel/net/phy.rs
 +F:    rust/kernel/net/phy/reg.rs
  
  EXEC & BINFMT API, ELF
  R:    Eric Biederman <[email protected]>
@@@ -8658,7 -8597,6 +8658,7 @@@ M:      Christian Brauner <[email protected]
  R:    Jan Kara <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
  F:    fs/*
  F:    include/linux/fs.h
  F:    include/linux/fs_types.h
@@@ -8834,6 -8772,7 +8834,6 @@@ F:      include/linux/fortify-string.
  F:    lib/fortify_kunit.c
  F:    lib/memcpy_kunit.c
  F:    lib/test_fortify/*
 -F:    scripts/test_fortify.sh
  K:    \b__NO_FORTIFY\b
  
  FPGA DFL DRIVERS
@@@ -8920,7 -8859,6 +8920,7 @@@ F:      drivers/dma/fsldma.
  FREESCALE DSPI DRIVER
  M:    Vladimir Oltean <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/fsl,dspi*.yaml
  F:    drivers/spi/spi-fsl-dspi.c
@@@ -9005,14 -8943,6 +9005,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml
  F:    drivers/i2c/busses/i2c-imx-lpi2c.c
  
 +FREESCALE IMX LPSPI DRIVER
 +M:    Frank Li <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/spi-fsl-lpspi.yaml
 +F:    drivers/spi/spi-fsl-lpspi.c
 +
  FREESCALE MPC I2C DRIVER
  M:    Chris Packham <[email protected]>
  L:    [email protected]
@@@ -9049,7 -8979,6 +9049,7 @@@ F:      include/linux/fsl/ptp_qoriq.
  FREESCALE QUAD SPI DRIVER
  M:    Han Xu <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/fsl,spi-fsl-qspi.yaml
  F:    drivers/spi/spi-fsl-qspi.c
@@@ -9067,7 -8996,6 +9067,7 @@@ M:      Herve Codina <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,cpm1-scc-qmc.yaml
 +F:    Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,qe-ucc-qmc.yaml
  F:    drivers/soc/fsl/qe/qmc.c
  F:    include/soc/fsl/qe/qmc.h
  
@@@ -9083,11 -9011,9 +9083,11 @@@ M:    Herve Codina <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,cpm1-tsa.yaml
 +F:    Documentation/devicetree/bindings/soc/fsl/cpm_qe/fsl,qe-tsa.yaml
  F:    drivers/soc/fsl/qe/tsa.c
  F:    drivers/soc/fsl/qe/tsa.h
  F:    include/dt-bindings/soc/cpm1-fsl,tsa.h
 +F:    include/dt-bindings/soc/qe-fsl,tsa.h
  
  FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
  L:    [email protected]
@@@ -10247,7 -10173,7 +10247,7 @@@ F:   Documentation/devicetree/bindings/in
  F:    drivers/infiniband/hw/hns/
  
  HISILICON SAS Controller
 -M:    Xiang Chen <chenxiang66@hisilicon.com>
 +M:    Yihang Li <liyihang9@huawei.com>
  S:    Supported
  W:    http://www.hisilicon.com
  F:    Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
@@@ -11192,16 -11118,6 +11192,16 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    security/integrity/
  F:    security/integrity/ima/
  
 +INTEGRITY POLICY ENFORCEMENT (IPE)
 +M:    Fan Wu <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git https://github.com/microsoft/ipe.git
 +F:    Documentation/admin-guide/LSM/ipe.rst
 +F:    Documentation/security/ipe.rst
 +F:    scripts/ipe/
 +F:    security/ipe/
 +
  INTEL 810/815 FRAMEBUFFER DRIVER
  M:    Antonino Daplas <[email protected]>
  L:    [email protected]
@@@ -11224,12 -11140,12 +11224,12 @@@ F:        drivers/gpio/gpio-i8255.
  
  INTEL ASoC DRIVERS
  M:    Cezary Rojewski <[email protected]>
 -M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
  M:    Peter Ujfalusi <[email protected]>
  M:    Bard Liao <[email protected]>
  M:    Ranjani Sridharan <[email protected]>
  M:    Kai Vehmanen <[email protected]>
 +R:    Pierre-Louis Bossart <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/intel/
@@@ -12077,7 -11993,7 +12077,7 @@@ F:   fs/jfs
  JME NETWORK DRIVER
  M:    Guo-Fu Tseng <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/net/ethernet/jme.*
  
  JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
@@@ -12249,7 -12165,7 +12249,7 @@@ KERNEL NFSD, SUNRPC, AND LOCKD SERVER
  M:    Chuck Lever <[email protected]>
  M:    Jeff Layton <[email protected]>
  R:    Neil Brown <[email protected]>
 -R:    Olga Kornievskaia <kolga@netapp.com>
 +R:    Olga Kornievskaia <okorniev@redhat.com>
  R:    Dai Ngo <[email protected]>
  R:    Tom Talpey <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 +F:    Documentation/virt/kvm/loongarch/
  F:    arch/loongarch/include/asm/kvm*
  F:    arch/loongarch/include/uapi/asm/kvm*
  F:    arch/loongarch/kvm/
@@@ -13078,7 -12993,6 +13078,7 @@@ R:   Daniel Lustig <[email protected]
  R:    Joel Fernandes <[email protected]>
  L:    [email protected]
  L:    [email protected]
 +L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    Documentation/atomic_bitops.txt
@@@ -13410,16 -13324,14 +13410,16 @@@ F:        Documentation/devicetree/bindings/i2
  F:    drivers/i2c/muxes/i2c-mux-ltc4306.c
  
  LTP (Linux Test Project)
 +M:    Andrea Cervesato <[email protected]>
  M:    Cyril Hrubis <[email protected]>
  M:    Jan Stancek <[email protected]>
  M:    Petr Vorel <[email protected]>
  M:    Li Wang <[email protected]>
  M:    Yang Xu <[email protected]>
 +M:    Xiao Yang <[email protected]>
  L:    [email protected] (subscribers-only)
  S:    Maintained
 -W:    http://linux-test-project.github.io/
 +W:    https://linux-test-project.readthedocs.io/
  T:    git https://github.com/linux-test-project/ltp.git
  
  LTR390 AMBIENT/UV LIGHT SENSOR DRIVER
@@@ -13627,7 -13539,7 +13627,7 @@@ MARVELL GIGABIT ETHERNET DRIVERS (skge/
  M:    Mirko Lindner <[email protected]>
  M:    Stephen Hemminger <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Odd fixes
  F:    drivers/net/ethernet/marvell/sk*
  
  MARVELL LIBERTAS WIRELESS DRIVER
@@@ -13646,6 -13558,7 +13646,6 @@@ M:   Sebastian Hesselbarth <sebastian.hes
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/marvell/mv643xx_eth.*
 -F:    include/linux/mv643xx.h
  
  MARVELL MV88X3310 PHY DRIVER
  M:    Russell King <[email protected]>
@@@ -14576,7 -14489,7 +14576,7 @@@ MELLANOX ETHERNET DRIVER (mlx4_en
  M:    Tariq Toukan <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx4/en_*
  
@@@ -14585,7 -14498,7 +14585,7 @@@ M:   Saeed Mahameed <[email protected]
  M:    Tariq Toukan <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_*
  
@@@ -14593,7 -14506,7 +14593,7 @@@ MELLANOX ETHERNET INNOVA DRIVER
  R:    Boris Pismenny <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
@@@ -14604,7 -14517,7 +14604,7 @@@ M:   Ido Schimmel <[email protected]
  M:    Petr Machata <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlxsw/
  F:    tools/testing/selftests/drivers/net/mlxsw/
@@@ -14613,7 -14526,7 +14613,7 @@@ MELLANOX FIRMWARE FLASH LIBRARY (mlxfw
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlxfw/
  
@@@ -14632,7 -14545,7 +14632,7 @@@ M:   Tariq Toukan <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx4/
  F:    include/linux/mlx4/
@@@ -14641,7 -14554,7 +14641,7 @@@ MELLANOX MLX4 IB drive
  M:    Yishai Hadas <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    http://patchwork.kernel.org/project/linux-rdma/list/
  F:    drivers/infiniband/hw/mlx4/
  F:    include/linux/mlx4/
@@@ -14654,7 -14567,7 +14654,7 @@@ M:   Tariq Toukan <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    Documentation/networking/device_drivers/ethernet/mellanox/
  F:    drivers/net/ethernet/mellanox/mlx5/core/
@@@ -14664,7 -14577,7 +14664,7 @@@ MELLANOX MLX5 IB drive
  M:    Leon Romanovsky <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.mellanox.com
 +W:    https://www.nvidia.com/networking/
  Q:    http://patchwork.kernel.org/project/linux-rdma/list/
  F:    drivers/infiniband/hw/mlx5/
  F:    include/linux/mlx5/
@@@ -14892,7 -14805,6 +14892,7 @@@ M:   Alexander Duyck <[email protected]
  M:    Jakub Kicinski <[email protected]>
  R:    [email protected]
  S:    Supported
 +F:    Documentation/networking/device_drivers/ethernet/meta/
  F:    drivers/net/ethernet/meta/
  
  METHODE UDPU SUPPORT
  S:    Maintained
  F:    drivers/net/ethernet/microchip/lan743x_*
  
 +MICROCHIP LAN8650/1 10BASE-T1S MACPHY ETHERNET DRIVER
 +M:    Parthiban Veerasooran <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/microchip,lan8650.yaml
 +F:    drivers/net/ethernet/microchip/lan865x/lan865x.c
 +
  MICROCHIP LAN87xx/LAN937x T1 PHY DRIVER
  M:    Arun Ramadoss <[email protected]>
  R:    [email protected]
@@@ -15295,6 -15200,12 +15295,12 @@@ S: Maintaine
  F:    Documentation/hwmon/surface_fan.rst
  F:    drivers/hwmon/surface_fan.c
  
+ MICROSOFT SURFACE SENSOR THERMAL DRIVER
+ M:    Maximilian Luz <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/hwmon/surface_temp.c
  MICROSOFT SURFACE GPE LID SUPPORT DRIVER
  M:    Maximilian Luz <[email protected]>
  L:    [email protected]
@@@ -15865,7 -15776,6 +15871,7 @@@ M:   Breno Leitao <[email protected]
  S:    Maintained
  F:    Documentation/networking/netconsole.rst
  F:    drivers/net/netconsole.c
 +F:    tools/testing/selftests/drivers/net/netcons_basic.sh
  
  NETDEVSIM
  M:    Jakub Kicinski <[email protected]>
@@@ -15971,21 -15881,15 +15977,21 @@@ F:        drivers/net
  F:    include/dt-bindings/net/
  F:    include/linux/cn_proc.h
  F:    include/linux/etherdevice.h
 +F:    include/linux/ethtool_netlink.h
  F:    include/linux/fcdevice.h
  F:    include/linux/fddidevice.h
  F:    include/linux/hippidevice.h
  F:    include/linux/if_*
  F:    include/linux/inetdevice.h
 -F:    include/linux/netdevice.h
 +F:    include/linux/netdev*
 +F:    include/linux/platform_data/wiznet.h
  F:    include/uapi/linux/cn_proc.h
 +F:    include/uapi/linux/ethtool_netlink.h
  F:    include/uapi/linux/if_*
 -F:    include/uapi/linux/netdevice.h
 +F:    include/uapi/linux/netdev*
 +F:    tools/testing/selftests/drivers/net/
 +X:    Documentation/devicetree/bindings/net/bluetooth/
 +X:    Documentation/devicetree/bindings/net/wireless/
  X:    drivers/net/wireless/
  
  NETWORKING DRIVERS (WIRELESS)
@@@ -16036,28 -15940,13 +16042,28 @@@ F:        include/linux/framer/framer-provider
  F:    include/linux/framer/framer.h
  F:    include/linux/in.h
  F:    include/linux/indirect_call_wrapper.h
 +F:    include/linux/inet.h
 +F:    include/linux/inet_diag.h
  F:    include/linux/net.h
 -F:    include/linux/netdevice.h
 +F:    include/linux/netdev*
 +F:    include/linux/netlink.h
 +F:    include/linux/netpoll.h
 +F:    include/linux/rtnetlink.h
 +F:    include/linux/seq_file_net.h
 +F:    include/linux/skbuff*
  F:    include/net/
 +F:    include/uapi/linux/genetlink.h
 +F:    include/uapi/linux/hsr_netlink.h
  F:    include/uapi/linux/in.h
 +F:    include/uapi/linux/inet_diag.h
 +F:    include/uapi/linux/nbd-netlink.h
  F:    include/uapi/linux/net.h
  F:    include/uapi/linux/net_namespace.h
 -F:    include/uapi/linux/netdevice.h
 +F:    include/uapi/linux/netconf.h
 +F:    include/uapi/linux/netdev*
 +F:    include/uapi/linux/netlink.h
 +F:    include/uapi/linux/netlink_diag.h
 +F:    include/uapi/linux/rtnetlink.h
  F:    lib/net_utils.c
  F:    lib/random32.c
  F:    net/
@@@ -16499,7 -16388,6 +16505,7 @@@ M:   Han Xu <[email protected]
  M:    Haibo Chen <[email protected]>
  R:    Yogesh Gaur <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
  F:    drivers/spi/spi-nxp-fspi.c
  S:    Supported
  F:    drivers/infiniband/ulp/opa_vnic
  
 +OPEN ALLIANCE 10BASE-T1S MACPHY SERIAL INTERFACE FRAMEWORK
 +M:    Parthiban Veerasooran <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/oa-tc6-framework.rst
 +F:    drivers/include/linux/oa_tc6.h
 +F:    drivers/net/ethernet/oa_tc6.c
 +
  OPEN FIRMWARE AND FLATTENED DEVICE TREE
  M:    Rob Herring <[email protected]>
  M:    Saravana Kannan <[email protected]>
@@@ -17219,7 -17099,7 +17225,7 @@@ F:   include/dt-bindings
  
  OPENCOMPUTE PTP CLOCK DRIVER
  M:    Jonathan Lemon <[email protected]>
 -M:    Vadim Fedorenko <vadfed@linux.dev>
 +M:    Vadim Fedorenko <vadim.fedorenko@linux.dev>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ptp/ptp_ocp.c
@@@ -17538,7 -17418,6 +17544,7 @@@ M:   Roy Zang <[email protected]
  L:    [email protected]
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  F:    drivers/pci/controller/dwc/*layerscape*
  
@@@ -17565,7 -17444,6 +17571,7 @@@ M:   Richard Zhu <[email protected]
  M:    Lucas Stach <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml
  F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml
@@@ -17744,7 -17622,6 +17750,7 @@@ F:   drivers/pci/controller/pci-xgene-msi
  PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
  M:    Lorenzo Pieralisi <[email protected]>
  M:    Krzysztof WilczyÅ„ski <[email protected]>
 +R:    Manivannan Sadhasivam <[email protected]>
  R:    Rob Herring <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -18330,7 -18207,6 +18336,7 @@@ M:   Bartosz Golaszewski <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
 +F:    Documentation/driver-api/pwrseq.rst
  F:    drivers/power/sequencing/
  F:    include/linux/pwrseq/
  
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/pse-pd/
  F:    drivers/net/pse-pd/
 +F:    net/ethtool/pse-pd.c
  
  PSTORE FILESYSTEM
  M:    Kees Cook <[email protected]>
@@@ -18653,6 -18528,7 +18659,6 @@@ F:   drivers/crypto/intel/qat
  
  QCOM AUDIO (ASoC) DRIVERS
  M:    Srinivas Kandagatla <[email protected]>
 -M:    Banajit Goswami <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Supported
@@@ -18686,7 -18562,7 +18692,7 @@@ F:   drivers/usb/misc/qcom_eud.
  QCOM IPA DRIVER
  M:    Alex Elder <[email protected]>
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  F:    drivers/net/ipa/
  
  QEMU MACHINE EMULATOR AND VIRTUALIZER SUPPORT
@@@ -18901,7 -18777,7 +18907,7 @@@ F:   include/uapi/drm/qaic_accel.
  
  QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
  M:    Bjorn Andersson <[email protected]>
 -M:    Konrad Dybcio <konrad.dybcio@linaro.org>
 +M:    Konrad Dybcio <konradybcio@kernel.org>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
  S:    Maintained
  F:    Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml
  F:    drivers/soc/qcom/icc-bwmon.c
 +F:    drivers/soc/qcom/trace_icc-bwmon.h
  
  QUALCOMM IOMMU
  M:    Rob Clark <[email protected]>
@@@ -19325,7 -19200,6 +19331,7 @@@ S:   Supporte
  W:    https://oss.oracle.com/projects/rds/
  F:    Documentation/networking/rds.rst
  F:    net/rds/
 +F:    tools/testing/selftests/net/rds/
  
  RDT - RESOURCE ALLOCATION
  M:    Fenghua Yu <[email protected]>
@@@ -19828,14 -19702,6 +19834,14 @@@ F: Documentation/ABI/*/sysfs-driver-hid
  F:    drivers/hid/hid-roccat*
  F:    include/linux/hid-roccat*
  
 +ROCKCHIP CAN-FD DRIVER
 +M:    Marc Kleine-Budde <[email protected]>
 +R:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml
 +F:    drivers/net/can/rockchip/
 +
  ROCKCHIP CRYPTO DRIVERS
  M:    Corentin Labbe <[email protected]>
  L:    [email protected]
@@@ -19862,13 -19728,6 +19868,13 @@@ F: Documentation/userspace-api/media/v4
  F:    drivers/media/platform/rockchip/rkisp1
  F:    include/uapi/linux/rkisp1-config.h
  
 +ROCKCHIP RK3568 RANDOM NUMBER GENERATOR SUPPORT
 +M:    Daniel Golle <[email protected]>
 +M:    Aurelien Jarno <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
 +F:    drivers/char/hw_random/rockchip-rng.c
 +
  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
  M:    Jacob Chen <[email protected]>
  M:    Ezequiel Garcia <[email protected]>
@@@ -19985,26 -19844,12 +19991,26 @@@ T:        git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
  F:    drivers/media/platform/sunxi/sun8i-rotate/
  
 +RPMB SUBSYSTEM
 +M:    Jens Wiklander <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/misc/rpmb-core.c
 +F:    include/linux/rpmb.h
 +
  RPMSG TTY DRIVER
  M:    Arnaud Pouliquen <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/tty/rpmsg_tty.c
  
 +RTASE ETHERNET DRIVER
 +M:    Justin Lai <[email protected]>
 +M:    Larry Chiu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/realtek/rtase/
 +
  RTL2830 MEDIA DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -20065,11 -19910,12 +20071,11 @@@ F:        tools/verification
  RUST
  M:    Miguel Ojeda <[email protected]>
  M:    Alex Gaynor <[email protected]>
 -M:    Wedson Almeida Filho <[email protected]>
  R:    Boqun Feng <[email protected]>
  R:    Gary Guo <[email protected]>
  R:    Björn Roy Baron <[email protected]>
  R:    Benno Lossin <[email protected]>
 -R:    Andreas Hindborg <a.hindborg@samsung.com>
 +R:    Andreas Hindborg <a.hindborg@kernel.org>
  R:    Alice Ryhl <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/sound/samsung*
  F:    sound/soc/samsung/
  
 +SAMSUNG EXYNOS850 SoC SUPPORT
 +M:    Sam Protsenko <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml
 +F:    arch/arm64/boot/dts/exynos/exynos850*
 +F:    drivers/clk/samsung/clk-exynos850.c
 +F:    include/dt-bindings/clock/exynos850.h
 +
  SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
@@@ -20521,7 -20357,6 +20527,7 @@@ F:   Documentation/devicetree/bindings/sc
  F:    drivers/scsi/
  F:    drivers/ufs/
  F:    include/scsi/
 +F:    include/uapi/scsi/
  
  SCSI TAPE DRIVER
  M:    Kai Mäkisara <[email protected]>
@@@ -21222,7 -21057,6 +21228,7 @@@ SOCKET TIMESTAMPIN
  M:    Willem de Bruijn <[email protected]>
  S:    Maintained
  F:    Documentation/networking/timestamping.rst
 +F:    include/linux/net_tstamp.h
  F:    include/uapi/linux/net_tstamp.h
  F:    tools/testing/selftests/net/so_txtime.c
  
@@@ -21519,13 -21353,13 +21525,13 @@@ S:        Maintaine
  F:    tools/sound/dapm-graph
  
  SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS
 -M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
  M:    Peter Ujfalusi <[email protected]>
  M:    Bard Liao <[email protected]>
  M:    Ranjani Sridharan <[email protected]>
  M:    Daniel Baluta <[email protected]>
  R:    Kai Vehmanen <[email protected]>
 +R:    Pierre-Louis Bossart <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  W:    https://github.com/thesofproject/linux/
@@@ -21534,7 -21368,7 +21540,7 @@@ F:   sound/soc/sof
  SOUNDWIRE SUBSYSTEM
  M:    Vinod Koul <[email protected]>
  M:    Bard Liao <[email protected]>
 -R:    Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
 +R:    Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
  R:    Sanyog Kale <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
@@@ -22598,7 -22432,6 +22604,7 @@@ M:   Jens Wiklander <jens.wiklander@linar
  R:    Sumit Garg <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-tee
  F:    Documentation/driver-api/tee.rst
  F:    Documentation/tee/
  F:    Documentation/userspace-api/tee.rst
@@@ -22749,11 -22582,12 +22755,11 @@@ F:        Documentation/devicetree/bindings/so
  F:    Documentation/devicetree/bindings/sound/ti,tas2562.yaml
  F:    Documentation/devicetree/bindings/sound/ti,tas2770.yaml
  F:    Documentation/devicetree/bindings/sound/ti,tas27xx.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,tpa6130a2.yaml
  F:    Documentation/devicetree/bindings/sound/ti,pcm1681.yaml
  F:    Documentation/devicetree/bindings/sound/ti,pcm3168a.yaml
  F:    Documentation/devicetree/bindings/sound/ti,tlv320*.yaml
  F:    Documentation/devicetree/bindings/sound/ti,tlv320adcx140.yaml
 -F:    Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
 -F:    Documentation/devicetree/bindings/sound/tpa6130a2.txt
  F:    include/sound/tas2*.h
  F:    include/sound/tlv320*.h
  F:    include/sound/tpa6130a2-plat.h
@@@ -23343,8 -23177,9 +23349,8 @@@ TQ SYSTEMS BOARD & DRIVER SUPPOR
  L:    [email protected]
  S:    Supported
  W:    https://www.tq-group.com/en/products/tq-embedded/
 -F:    arch/arm/boot/dts/imx*mba*.dts*
 -F:    arch/arm/boot/dts/imx*tqma*.dts*
 -F:    arch/arm/boot/dts/mba*.dtsi
 +F:    arch/arm/boot/dts/nxp/imx/*mba*.dts*
 +F:    arch/arm/boot/dts/nxp/imx/*tqma*.dts*
  F:    arch/arm64/boot/dts/freescale/fsl-*tqml*.dts*
  F:    arch/arm64/boot/dts/freescale/imx*mba*.dts*
  F:    arch/arm64/boot/dts/freescale/imx*tqma*.dts*
@@@ -23629,15 -23464,6 +23635,15 @@@ F: drivers/cdrom/cdrom.
  F:    include/linux/cdrom.h
  F:    include/uapi/linux/cdrom.h
  
 +UNION-FIND
 +M:    Xavier <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/core-api/union_find.rst
 +F:    Documentation/translations/zh_CN/core-api/union_find.rst
 +F:    include/linux/union_find.h
 +F:    lib/union_find.c
 +
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
  R:    Alim Akhtar <[email protected]>
  R:    Avri Altman <[email protected]>
@@@ -23998,8 -23824,10 +24004,8 @@@ F:  drivers/media/usb/uvc
  F:    include/uapi/linux/uvcvideo.h
  
  USB WEBCAM GADGET
 -M:    Laurent Pinchart <[email protected]>
 -M:    Daniel Scally <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    drivers/usb/gadget/function/*uvc*
  F:    drivers/usb/gadget/legacy/webcam.c
  F:    include/uapi/linux/usb/g_uvc.h
@@@ -24950,17 -24778,6 +24956,17 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/arch/x86/
  F:    Documentation/devicetree/bindings/x86/
  F:    arch/x86/
 +F:    tools/testing/selftests/x86
 +
 +X86 CPUID DATABASE
 +M:    Borislav Petkov <[email protected]>
 +M:    Thomas Gleixner <[email protected]>
 +M:    [email protected]
 +R:    Ahmed S. Darwish <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +W:    https://x86-cpuid.org
 +F:    tools/arch/x86/kcpuid/cpuid.csv
  
  X86 ENTRY CODE
  M:    Andy Lutomirski <[email protected]>
diff --combined drivers/hwmon/adt7475.c
index 382a2bb9168a50ddde0fe2ecdd72d2d635a4dfce,05c85dc6b142d64c302650e63dfc8ef150782dc5..ca466d12475a1e4a9122da2c295b779a09f047e3
  #include <linux/of.h>
  #include <linux/util_macros.h>
  
+ #include <dt-bindings/pwm/pwm.h>
  /* Indexes for the sysfs hooks */
 -
 -#define INPUT         0
 -#define MIN           1
 -#define MAX           2
 -#define CONTROL               3
 -#define OFFSET                3
 -#define AUTOMIN               4
 -#define THERM         5
 -#define HYSTERSIS     6
 -
 +enum adt_sysfs_id {
 +      INPUT           = 0,
 +      MIN             = 1,
 +      MAX             = 2,
 +      CONTROL         = 3,
 +      OFFSET          = 3,    // Dup
 +      AUTOMIN         = 4,
 +      THERM           = 5,
 +      HYSTERSIS       = 6,
  /*
   * These are unique identifiers for the sysfs functions - unlike the
   * numbers above, these are not also indexes into an array
   */
 +      ALARM           = 9,
 +      FAULT           = 10,
 +};
  
 -#define ALARM         9
 -#define FAULT         10
  
  /* 7475 Common Registers */
  
@@@ -1662,6 -1664,130 +1664,130 @@@ static int adt7475_set_pwm_polarity(str
        return 0;
  }
  
+ struct adt7475_pwm_config {
+       int index;
+       int freq;
+       int flags;
+       int duty;
+ };
+ static int _adt7475_pwm_properties_parse_args(u32 args[4], struct adt7475_pwm_config *cfg)
+ {
+       int freq_hz;
+       int duty;
+       if (args[1] == 0)
+               return -EINVAL;
+       freq_hz = 1000000000UL / args[1];
+       if (args[3] >= args[1])
+               duty = 255;
+       else
+               duty = div_u64(255ULL * args[3], args[1]);
+       cfg->index = args[0];
+       cfg->freq = find_closest(freq_hz, pwmfreq_table, ARRAY_SIZE(pwmfreq_table));
+       cfg->flags = args[2];
+       cfg->duty = duty;
+       return 0;
+ }
+ static int adt7475_pwm_properties_parse_reference_args(struct fwnode_handle *fwnode,
+                                                      struct adt7475_pwm_config *cfg)
+ {
+       int ret, i;
+       struct fwnode_reference_args rargs = {};
+       u32 args[4] = {};
+       ret = fwnode_property_get_reference_args(fwnode, "pwms", "#pwm-cells", 0, 0, &rargs);
+       if (ret)
+               return ret;
+       if (rargs.nargs != 4) {
+               fwnode_handle_put(rargs.fwnode);
+               return -EINVAL;
+       }
+       for (i = 0; i < 4; i++)
+               args[i] = rargs.args[i];
+       ret = _adt7475_pwm_properties_parse_args(args, cfg);
+       fwnode_handle_put(rargs.fwnode);
+       return ret;
+ }
+ static int adt7475_pwm_properties_parse_args(struct fwnode_handle *fwnode,
+                                            struct adt7475_pwm_config *cfg)
+ {
+       int ret;
+       u32 args[4] = {};
+       ret = fwnode_property_read_u32_array(fwnode, "pwms", args, ARRAY_SIZE(args));
+       if (ret)
+               return ret;
+       return _adt7475_pwm_properties_parse_args(args, cfg);
+ }
+ static int adt7475_fan_pwm_config(struct i2c_client *client)
+ {
+       struct adt7475_data *data = i2c_get_clientdata(client);
+       struct fwnode_handle *child;
+       struct adt7475_pwm_config cfg = {};
+       int ret;
+       device_for_each_child_node(&client->dev, child) {
+               if (!fwnode_property_present(child, "pwms"))
+                       continue;
+               if (is_of_node(child))
+                       ret = adt7475_pwm_properties_parse_reference_args(child, &cfg);
+               else
+                       ret = adt7475_pwm_properties_parse_args(child, &cfg);
+               if (cfg.index >= ADT7475_PWM_COUNT)
+                       return -EINVAL;
+               ret = adt7475_read(PWM_CONFIG_REG(cfg.index));
+               if (ret < 0)
+                       return ret;
+               data->pwm[CONTROL][cfg.index] = ret;
+               if (cfg.flags & PWM_POLARITY_INVERTED)
+                       data->pwm[CONTROL][cfg.index] |= BIT(4);
+               else
+                       data->pwm[CONTROL][cfg.index] &= ~BIT(4);
+               /* Force to manual mode so PWM values take effect */
+               data->pwm[CONTROL][cfg.index] &= ~0xE0;
+               data->pwm[CONTROL][cfg.index] |= 0x07 << 5;
+               ret = i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(cfg.index),
+                                               data->pwm[CONTROL][cfg.index]);
+               if (ret)
+                       return ret;
+               data->pwm[INPUT][cfg.index] = cfg.duty;
+               ret = i2c_smbus_write_byte_data(client, PWM_REG(cfg.index),
+                                               data->pwm[INPUT][cfg.index]);
+               if (ret)
+                       return ret;
+               data->range[cfg.index] = adt7475_read(TEMP_TRANGE_REG(cfg.index));
+               data->range[cfg.index] &= ~0xf;
+               data->range[cfg.index] |= cfg.freq;
+               ret = i2c_smbus_write_byte_data(client, TEMP_TRANGE_REG(cfg.index),
+                                               data->range[cfg.index]);
+               if (ret)
+                       return ret;
+       }
+       return 0;
+ }
  static int adt7475_probe(struct i2c_client *client)
  {
        enum chips chip;
        if (ret && ret != -EINVAL)
                dev_warn(&client->dev, "Error configuring pwm polarity\n");
  
+       ret = adt7475_fan_pwm_config(client);
+       if (ret)
+               dev_warn(&client->dev, "Error %d configuring fan/pwm\n", ret);
        /* Start monitoring */
        switch (chip) {
        case adt7475:
diff --combined drivers/hwmon/k10temp.c
index f96b91e433126148c1b575d42abb478d58b1b839,85a7632f3b50a0fb3a112f5797b01db5f91d5ec4..7dc19c5d62ac3581a7da9ca63897839351d3b09b
@@@ -438,16 -438,21 +438,21 @@@ static int k10temp_probe(struct pci_de
                data->disp_negative = true;
        }
  
-       if (boot_cpu_data.x86 == 0x15 &&
+       data->is_zen = cpu_feature_enabled(X86_FEATURE_ZEN);
+       if (data->is_zen) {
+               data->temp_adjust_mask = ZEN_CUR_TEMP_RANGE_SEL_MASK;
+               data->read_tempreg = read_tempreg_nb_zen;
+       } else if (boot_cpu_data.x86 == 0x15 &&
            ((boot_cpu_data.x86_model & 0xf0) == 0x60 ||
             (boot_cpu_data.x86_model & 0xf0) == 0x70)) {
                data->read_htcreg = read_htcreg_nb_f15;
                data->read_tempreg = read_tempreg_nb_f15;
-       } else if (boot_cpu_data.x86 == 0x17 || boot_cpu_data.x86 == 0x18) {
-               data->temp_adjust_mask = ZEN_CUR_TEMP_RANGE_SEL_MASK;
-               data->read_tempreg = read_tempreg_nb_zen;
-               data->is_zen = true;
+       } else {
+               data->read_htcreg = read_htcreg_pci;
+               data->read_tempreg = read_tempreg_pci;
+       }
  
+       if (boot_cpu_data.x86 == 0x17 || boot_cpu_data.x86 == 0x18) {
                switch (boot_cpu_data.x86_model) {
                case 0x1:       /* Zen */
                case 0x8:       /* Zen+ */
                        break;
                }
        } else if (boot_cpu_data.x86 == 0x19) {
-               data->temp_adjust_mask = ZEN_CUR_TEMP_RANGE_SEL_MASK;
-               data->read_tempreg = read_tempreg_nb_zen;
-               data->is_zen = true;
                switch (boot_cpu_data.x86_model) {
                case 0x0 ... 0x1:       /* Zen3 SP3/TR */
                case 0x8:               /* Zen3 TR Chagall */
                        k10temp_get_ccd_support(data, 12);
                        break;
                }
-       } else if (boot_cpu_data.x86 == 0x1a) {
-               data->temp_adjust_mask = ZEN_CUR_TEMP_RANGE_SEL_MASK;
-               data->read_tempreg = read_tempreg_nb_zen;
-               data->is_zen = true;
-       } else {
-               data->read_htcreg = read_htcreg_pci;
-               data->read_tempreg = read_tempreg_pci;
        }
  
        for (i = 0; i < ARRAY_SIZE(tctl_offset_table); i++) {
@@@ -548,7 -542,6 +542,7 @@@ static const struct pci_device_id k10te
        { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_19H_M78H_DF_F3) },
        { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_1AH_M00H_DF_F3) },
        { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_1AH_M20H_DF_F3) },
 +      { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_1AH_M60H_DF_F3) },
        { PCI_VDEVICE(HYGON, PCI_DEVICE_ID_AMD_17H_DF_F3) },
        {}
  };
index 0bea603994e7b267940c6e2642f12613f8e37fa7,5d5dc774187b794ee2e3cce9c872bff13fccd533..d605412a3173b95041524285ad1fde52fb64ce5a
@@@ -418,12 -418,6 +418,12 @@@ enum pmbus_sensor_classes 
  enum pmbus_data_format { linear = 0, ieee754, direct, vid };
  enum vrm_version { vr11 = 0, vr12, vr13, imvp9, amd625mv };
  
 +/* PMBus revision identifiers */
 +#define PMBUS_REV_10 0x00     /* PMBus revision 1.0 */
 +#define PMBUS_REV_11 0x11     /* PMBus revision 1.1 */
 +#define PMBUS_REV_12 0x22     /* PMBus revision 1.2 */
 +#define PMBUS_REV_13 0x33     /* PMBus revision 1.3 */
 +
  struct pmbus_driver_info {
        int pages;              /* Total number of pages */
        u8 phases[PMBUS_PAGES]; /* Number of phases per page */
  
        /* custom attributes */
        const struct attribute_group **groups;
+       /*
+        * Some chips need a little delay between SMBus communication. When
+        * set, the generic PMBus helper functions will wait if necessary
+        * to meet this requirement. The access delay is honored after
+        * every SMBus operation. The write delay is only honored after
+        * SMBus write operations.
+        */
+       int access_delay;               /* in microseconds */
+       int write_delay;                /* in microseconds */
  };
  
  /* Regulator ops */
index e592446b26653e2c5789d9f4d8d78631d99a934c,0ea6fe7eb17c467e7eb876d2c79d43f8ffb85677..ce7fd4ca9d89b0f0a02e6c99db391a7cfca924a8
@@@ -7,6 -7,7 +7,7 @@@
   */
  
  #include <linux/debugfs.h>
+ #include <linux/delay.h>
  #include <linux/kernel.h>
  #include <linux/math64.h>
  #include <linux/module.h>
@@@ -85,8 -86,6 +86,8 @@@ struct pmbus_data 
  
        u32 flags;              /* from platform data */
  
 +      u8 revision;    /* The PMBus revision the device is compliant with */
 +
        int exponent[PMBUS_PAGES];
                                /* linear mode: exponent for output voltages */
  
  
        int vout_low[PMBUS_PAGES];      /* voltage low margin */
        int vout_high[PMBUS_PAGES];     /* voltage high margin */
+       ktime_t write_time;             /* Last SMBUS write timestamp */
+       ktime_t access_time;            /* Last SMBUS access timestamp */
  };
  
  struct pmbus_debugfs_entry {
@@@ -160,6 -161,39 +163,39 @@@ void pmbus_set_update(struct i2c_clien
  }
  EXPORT_SYMBOL_NS_GPL(pmbus_set_update, PMBUS);
  
+ /* Some chips need a delay between accesses. */
+ static void pmbus_wait(struct i2c_client *client)
+ {
+       struct pmbus_data *data = i2c_get_clientdata(client);
+       const struct pmbus_driver_info *info = data->info;
+       s64 delta;
+       if (info->access_delay) {
+               delta = ktime_us_delta(ktime_get(), data->access_time);
+               if (delta < info->access_delay)
+                       fsleep(info->access_delay - delta);
+       } else if (info->write_delay) {
+               delta = ktime_us_delta(ktime_get(), data->write_time);
+               if (delta < info->write_delay)
+                       fsleep(info->write_delay - delta);
+       }
+ }
+ /* Sets the last accessed timestamp for pmbus_wait */
+ static void pmbus_update_ts(struct i2c_client *client, bool write_op)
+ {
+       struct pmbus_data *data = i2c_get_clientdata(client);
+       const struct pmbus_driver_info *info = data->info;
+       if (info->access_delay) {
+               data->access_time = ktime_get();
+       } else if (info->write_delay && write_op) {
+               data->write_time = ktime_get();
+       }
+ }
  int pmbus_set_page(struct i2c_client *client, int page, int phase)
  {
        struct pmbus_data *data = i2c_get_clientdata(client);
  
        if (!(data->info->func[page] & PMBUS_PAGE_VIRTUAL) &&
            data->info->pages > 1 && page != data->currpage) {
+               pmbus_wait(client);
                rv = i2c_smbus_write_byte_data(client, PMBUS_PAGE, page);
+               pmbus_update_ts(client, true);
                if (rv < 0)
                        return rv;
  
+               pmbus_wait(client);
                rv = i2c_smbus_read_byte_data(client, PMBUS_PAGE);
+               pmbus_update_ts(client, false);
                if (rv < 0)
                        return rv;
  
  
        if (data->info->phases[page] && data->currphase != phase &&
            !(data->info->func[page] & PMBUS_PHASE_VIRTUAL)) {
+               pmbus_wait(client);
                rv = i2c_smbus_write_byte_data(client, PMBUS_PHASE,
                                               phase);
+               pmbus_update_ts(client, true);
                if (rv)
                        return rv;
        }
@@@ -204,7 -244,11 +246,11 @@@ int pmbus_write_byte(struct i2c_client 
        if (rv < 0)
                return rv;
  
-       return i2c_smbus_write_byte(client, value);
+       pmbus_wait(client);
+       rv = i2c_smbus_write_byte(client, value);
+       pmbus_update_ts(client, true);
+       return rv;
  }
  EXPORT_SYMBOL_NS_GPL(pmbus_write_byte, PMBUS);
  
@@@ -235,7 -279,11 +281,11 @@@ int pmbus_write_word_data(struct i2c_cl
        if (rv < 0)
                return rv;
  
-       return i2c_smbus_write_word_data(client, reg, word);
+       pmbus_wait(client);
+       rv = i2c_smbus_write_word_data(client, reg, word);
+       pmbus_update_ts(client, true);
+       return rv;
  }
  EXPORT_SYMBOL_NS_GPL(pmbus_write_word_data, PMBUS);
  
@@@ -353,7 -401,11 +403,11 @@@ int pmbus_read_word_data(struct i2c_cli
        if (rv < 0)
                return rv;
  
-       return i2c_smbus_read_word_data(client, reg);
+       pmbus_wait(client);
+       rv = i2c_smbus_read_word_data(client, reg);
+       pmbus_update_ts(client, false);
+       return rv;
  }
  EXPORT_SYMBOL_NS_GPL(pmbus_read_word_data, PMBUS);
  
@@@ -412,7 -464,11 +466,11 @@@ int pmbus_read_byte_data(struct i2c_cli
        if (rv < 0)
                return rv;
  
-       return i2c_smbus_read_byte_data(client, reg);
+       pmbus_wait(client);
+       rv = i2c_smbus_read_byte_data(client, reg);
+       pmbus_update_ts(client, false);
+       return rv;
  }
  EXPORT_SYMBOL_NS_GPL(pmbus_read_byte_data, PMBUS);
  
@@@ -424,7 -480,11 +482,11 @@@ int pmbus_write_byte_data(struct i2c_cl
        if (rv < 0)
                return rv;
  
-       return i2c_smbus_write_byte_data(client, reg, value);
+       pmbus_wait(client);
+       rv = i2c_smbus_write_byte_data(client, reg, value);
+       pmbus_update_ts(client, true);
+       return rv;
  }
  EXPORT_SYMBOL_NS_GPL(pmbus_write_byte_data, PMBUS);
  
@@@ -456,7 -516,11 +518,11 @@@ static int pmbus_read_block_data(struc
        if (rv < 0)
                return rv;
  
-       return i2c_smbus_read_block_data(client, reg, data_buf);
+       pmbus_wait(client);
+       rv = i2c_smbus_read_block_data(client, reg, data_buf);
+       pmbus_update_ts(client, false);
+       return rv;
  }
  
  static struct pmbus_sensor *pmbus_find_sensor(struct pmbus_data *data, int page,
@@@ -1097,14 -1161,9 +1163,14 @@@ static int pmbus_get_boolean(struct i2c
  
        regval = status & mask;
        if (regval) {
 -              ret = _pmbus_write_byte_data(client, page, reg, regval);
 -              if (ret)
 -                      goto unlock;
 +              if (data->revision >= PMBUS_REV_12) {
 +                      ret = _pmbus_write_byte_data(client, page, reg, regval);
 +                      if (ret)
 +                              goto unlock;
 +              } else {
 +                      pmbus_clear_fault_page(client, page);
 +              }
 +
        }
        if (s1 && s2) {
                s64 v1, v2;
@@@ -2457,9 -2516,11 +2523,11 @@@ static int pmbus_read_coefficients(stru
        data.block[1] = attr->reg;
        data.block[2] = 0x01;
  
+       pmbus_wait(client);
        rv = i2c_smbus_xfer(client->adapter, client->addr, client->flags,
                            I2C_SMBUS_WRITE, PMBUS_COEFFICIENTS,
                            I2C_SMBUS_BLOCK_PROC_CALL, &data);
+       pmbus_update_ts(client, true);
  
        if (rv < 0)
                return rv;
@@@ -2611,7 -2672,10 +2679,10 @@@ static int pmbus_init_common(struct i2c
  
        /* Enable PEC if the controller and bus supports it */
        if (!(data->flags & PMBUS_NO_CAPABILITY)) {
+               pmbus_wait(client);
                ret = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY);
+               pmbus_update_ts(client, false);
                if (ret >= 0 && (ret & PB_CAPABILITY_ERROR_CHECK)) {
                        if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_PEC))
                                client->flags |= I2C_CLIENT_PEC;
         * Bail out if both registers are not supported.
         */
        data->read_status = pmbus_read_status_word;
+       pmbus_wait(client);
        ret = i2c_smbus_read_word_data(client, PMBUS_STATUS_WORD);
+       pmbus_update_ts(client, false);
        if (ret < 0 || ret == 0xffff) {
                data->read_status = pmbus_read_status_byte;
+               pmbus_wait(client);
                ret = i2c_smbus_read_byte_data(client, PMBUS_STATUS_BYTE);
+               pmbus_update_ts(client, false);
                if (ret < 0 || ret == 0xff) {
                        dev_err(dev, "PMBus status register not found\n");
                        return -ENODEV;
         * limit registers need to be disabled.
         */
        if (!(data->flags & PMBUS_NO_WRITE_PROTECT)) {
+               pmbus_wait(client);
                ret = i2c_smbus_read_byte_data(client, PMBUS_WRITE_PROTECT);
+               pmbus_update_ts(client, false);
                if (ret > 0 && (ret & PB_WP_ANY))
                        data->flags |= PMBUS_WRITE_PROTECTED | PMBUS_SKIP_STATUS_CHECK;
        }
  
 +      ret = i2c_smbus_read_byte_data(client, PMBUS_REVISION);
 +      if (ret >= 0)
 +              data->revision = ret;
 +
        if (data->info->pages)
                pmbus_clear_faults(client);
        else
This page took 0.194794 seconds and 4 git commands to generate.