]> Git Repo - linux.git/commitdiff
Merge tag 'hwmon-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck...
authorLinus Torvalds <[email protected]>
Fri, 12 Jan 2024 21:27:40 +0000 (13:27 -0800)
committerLinus Torvalds <[email protected]>
Fri, 12 Jan 2024 21:27:40 +0000 (13:27 -0800)
Pull hwmon updates from Guenter Roeck:
 "New drivers:
   - pmbus: Support for MPS Multi-phase mp2856/mp2857 controller
   - pmbus: Support for MPS Multi-phase mp5990
   - Driver for Gigabyte AORUS Waterforce AIO coolers

  Added support to existing drivers:
   - lm75: Support for AMS AS6200 temperature sensor
   - k10temp: Support for AMD Family 19h Model 8h
   - max31827: Support for max31828 and max31829
   - sht3x: Support for sts3x
   - Add support for WMI SMM interface, and various related improvements.
    Add support for Optiplex 7000
   - emc1403: Support for EMC1442
   - npcm750-pwm-fan: Support for NPCM8xx
   - nct6775: Add support for 2 additional fan controls

  Minor improvements and bug fixes:
   - gigabyte_waterforce: Mark status report as received under a spinlock
   - aquacomputer_d5next: Remove unneeded CONFIG_DEBUG_FS #ifdef
   - gpio-fan: Convert txt bindings to yaml
   - smsc47m1: Various cleanups / improvements
   - corsair-cpro: use NULL instead of 0
   - hp-wmi-sensors: Fix failure to load on EliteDesk 800 G6
   - tmp513: Various cleanups
   - peci/dimmtemp: Bump timeout
   - pc87360: Bounds check data->innr usage
   - nct6775: Fix fan speed set failure in automatic mode
   - ABI: sysfs-class-hwmon: document various missing attributes
   - lm25066, max6650, nct6775: Use i2c_get_match_data()
   - aspeed-pwm-tacho: Fix -Wstringop-overflow warning"

* tag 'hwmon-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (59 commits)
  hwmon: (gigabyte_waterforce) Mark status report as received under a spinlock
  hwmon: (lm75) Fix tmp112 default config
  hwmon: (lm75) Add AMS AS6200 temperature sensor
  dt-bindings: hwmon: (lm75) Add AMS AS6200 temperature sensor
  hwmon: (lm75) remove now-unused include
  hwmon: (pmbus) Add support for MPS Multi-phase mp2856/mp2857 controller
  dt-bindings: Add MP2856/MP2857 voltage regulator device
  hwmon: (aquacomputer_d5next) Remove unneeded CONFIG_DEBUG_FS #ifdef
  dt-bindings: hwmon: gpio-fan: Convert txt bindings to yaml
  hwmon: (k10temp) Add support for AMD Family 19h Model 8h
  hwmon: Add driver for Gigabyte AORUS Waterforce AIO coolers
  hwmon: (smsc47m1) Rename global platform device variable
  hwmon: (smsc47m1) Simplify device registration
  hwmon: (smsc47m1) Convert to platform remove callback returning void
  hwmon: (smsc47m1) Mark driver struct with __refdata to prevent section mismatch
  MAINTAINERS: Add maintainer for Baikal-T1 PVT hwmon driver
  hwmon: (sht3x) add sts3x support
  hwmon: (pmbus) Add ltc4286 driver
  dt-bindings: hwmon: Add lltc ltc4286 driver bindings
  hwmon: (max31827) Add custom attribute for resolution
  ...

1  2 
MAINTAINERS
drivers/platform/x86/wmi.c

diff --combined MAINTAINERS
index ab5e7e7fba4c6c64b45cda2e2ea08ea9f132b675,a0677e35c9b6c8784816b2f33b9d6509256c7975..463b9741be8f719ba182d9e294c7b5875bb6cf4b
@@@ -1931,6 -1931,7 +1931,6 @@@ F:      drivers/i2c/busses/i2c-pasemi-platfo
  F:    drivers/iommu/apple-dart.c
  F:    drivers/iommu/io-pgtable-dart.c
  F:    drivers/irqchip/irq-apple-aic.c
 -F:    drivers/mailbox/apple-mailbox.c
  F:    drivers/nvme/host/apple.c
  F:    drivers/nvmem/apple-efuses.c
  F:    drivers/pinctrl/pinctrl-apple-gpio.c
@@@ -1939,6 -1940,7 +1939,6 @@@ F:      drivers/soc/apple/
  F:    drivers/watchdog/apple_wdt.c
  F:    include/dt-bindings/interrupt-controller/apple-aic.h
  F:    include/dt-bindings/pinctrl/apple.h
 -F:    include/linux/apple-mailbox.h
  F:    include/linux/soc/apple/*
  
  ARM/ARTPEC MACHINE SUPPORT
  S:    Odd Fixes
  N:    clps711x
  
 -ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
 -M:    Lennert Buytenhek <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <[email protected]>
  M:    Alexander Sverdlin <[email protected]>
@@@ -2300,7 -2307,6 +2300,7 @@@ F:      arch/arm/mach-dove
  F:    arch/arm/mach-mv78xx0/
  F:    arch/arm/mach-orion5x/
  F:    arch/arm/plat-orion/
 +F:    drivers/bus/mvebu-mbus.c
  F:    drivers/soc/dove/
  
  ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K, CN9130 SOC support
@@@ -2315,7 -2321,8 +2315,7 @@@ F:      arch/arm/boot/dts/marvell/armada
  F:    arch/arm/boot/dts/marvell/kirkwood*
  F:    arch/arm/configs/mvebu_*_defconfig
  F:    arch/arm/mach-mvebu/
 -F:    arch/arm64/boot/dts/marvell/armada*
 -F:    arch/arm64/boot/dts/marvell/cn913*
 +F:    arch/arm64/boot/dts/marvell/
  F:    drivers/clk/mvebu/
  F:    drivers/cpufreq/armada-37xx-cpufreq.c
  F:    drivers/cpufreq/armada-8k-cpufreq.c
@@@ -2387,6 -2394,7 +2387,6 @@@ F:      drivers/memory/atmel
  F:    drivers/watchdog/sama5d4_wdt.c
  F:    include/soc/at91/
  X:    drivers/input/touchscreen/atmel_mxt_ts.c
 -X:    drivers/net/wireless/atmel/
  N:    at91
  N:    atmel
  
@@@ -2538,6 -2546,7 +2538,6 @@@ F:      arch/arm64/boot/dts/qcom/sc7280
  F:    arch/arm64/boot/dts/qcom/sdm845-cheza*
  
  ARM/QUALCOMM SUPPORT
 -M:    Andy Gross <[email protected]>
  M:    Bjorn Andersson <[email protected]>
  M:    Konrad Dybcio <[email protected]>
  L:    [email protected]
@@@ -2817,6 -2826,7 +2817,6 @@@ F:      Documentation/devicetree/bindings/in
  F:    Documentation/devicetree/bindings/reset/sunplus,reset.yaml
  F:    arch/arm/boot/dts/sunplus/
  F:    arch/arm/configs/sp7021_*defconfig
 -F:    arch/arm/mach-sunplus/
  F:    drivers/clk/clk-sp7021.c
  F:    drivers/irqchip/irq-sp7021-intc.c
  F:    drivers/reset/reset-sunplus.c
@@@ -2832,6 -2842,11 +2832,6 @@@ F:     arch/arm/boot/dts/synaptics
  F:    arch/arm/mach-berlin/
  F:    arch/arm64/boot/dts/synaptics/
  
 -ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
 -M:    Lennert Buytenhek <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/TEGRA HDMI CEC SUBSYSTEM SUPPORT
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/arm64/boot/dts/tesla/
  
 -ARM/TETON BGA MACHINE SUPPORT
 -M:    "Mark F. Brown" <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
  M:    Santosh Shilimkar <[email protected]>
  L:    [email protected]
@@@ -2926,6 -2946,7 +2926,6 @@@ F:      Documentation/devicetree/bindings/pi
  F:    Documentation/devicetree/bindings/soc/socionext/socionext,uniphier*.yaml
  F:    arch/arm/boot/dts/socionext/uniphier*
  F:    arch/arm/include/asm/hardware/cache-uniphier.h
 -F:    arch/arm/mach-uniphier/
  F:    arch/arm/mm/cache-uniphier.c
  F:    arch/arm64/boot/dts/socionext/uniphier*
  F:    drivers/bus/uniphier-system-bus.c
@@@ -2988,7 -3009,6 +2988,7 @@@ F:      Documentation/devicetree/bindings/i2
  F:    Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
  F:    Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml
  F:    Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml
 +F:    Documentation/devicetree/bindings/soc/xilinx/xilinx.yaml
  F:    Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml
  F:    arch/arm/mach-zynq/
  F:    drivers/clocksource/timer-cadence-ttc.c
@@@ -3053,14 -3073,6 +3053,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/net/asix,ax88796c.yaml
  F:    drivers/net/ethernet/asix/ax88796c_*
  
 +ASIX PHY DRIVER [RUST]
 +M:    FUJITA Tomonori <[email protected]>
 +R:    Trevor Gross <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/phy/ax88796b_rust.rs
 +
  ASPEED CRYPTO DRIVER
  M:    Neal Liu <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -3286,6 -3298,13 +3286,6 @@@ T:     git git://github.com/ndyer/linux.gi
  F:    Documentation/devicetree/bindings/input/atmel,maxtouch.yaml
  F:    drivers/input/touchscreen/atmel_mxt_ts.c
  
 -ATMEL WIRELESS DRIVER
 -L:    [email protected]
 -S:    Orphan
 -W:    http://www.thekelleys.org.uk/atmel
 -W:    http://atmelwlandriver.sourceforge.net/
 -F:    drivers/net/wireless/atmel/atmel*
 -
  ATOMIC INFRASTRUCTURE
  M:    Will Deacon <[email protected]>
  M:    Peter Zijlstra <[email protected]>
@@@ -3320,17 -3339,13 +3320,17 @@@ M:   Eric Paris <[email protected]
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linux-audit
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git
 +Q:    https://patchwork.kernel.org/project/audit/list
 +B:    mailto:[email protected]
 +P:    https://github.com/linux-audit/audit-kernel/blob/main/README.md
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git
  F:    include/asm-generic/audit_*.h
  F:    include/linux/audit.h
  F:    include/linux/audit_arch.h
  F:    include/uapi/linux/audit.h
  F:    kernel/audit*
  F:    lib/*audit.c
 +K:    \baudit_[a-z_0-9]\+\b
  
  AUXILIARY BUS DRIVER
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -3389,16 -3404,6 +3389,16 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/hwmon/adi,axi-fan-control.yaml
  F:    drivers/hwmon/axi-fan-control.c
  
 +AXI SPI ENGINE
 +M:    Michael Hennerich <[email protected]>
 +M:    Nuno Sá <[email protected]>
 +R:    David Lechner <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml
 +F:    drivers/spi/spi-axi-spi-engine.c
 +
  AXXIA I2C CONTROLLER
  M:    Krzysztof Adamski <[email protected]>
  L:    [email protected]
@@@ -3451,6 -3456,14 +3451,14 @@@ F:    drivers/video/backlight
  F:    include/linux/backlight.h
  F:    include/linux/pwm_backlight.h
  
+ BAIKAL-T1 PVT HARDWARE MONITOR DRIVER
+ M:    Serge Semin <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ F:    Documentation/devicetree/bindings/hwmon/baikal,bt1-pvt.yaml
+ F:    Documentation/hwmon/bt1-pvt.rst
+ F:    drivers/hwmon/bt1-pvt.[ch]
  BARCO P50 GPIO DRIVER
  M:    Santosh Kumar Yadav <[email protected]>
  M:    Peter Korsgaard <[email protected]>
@@@ -3483,7 -3496,7 +3491,7 @@@ F:      drivers/net/hamradio/baycom
  
  BCACHE (BLOCK LAYER CACHE)
  M:    Coly Li <[email protected]>
 -M:    Kent Overstreet <kent.overstreet@gmail.com>
 +M:    Kent Overstreet <kent.overstreet@linux.dev>
  L:    [email protected]
  S:    Maintained
  W:    http://bcache.evilpiepirate.org
@@@ -4122,6 -4135,7 +4130,6 @@@ M:      Franky Lin <[email protected]
  M:    Hante Meuleman <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    drivers/net/wireless/broadcom/brcm80211/
  
@@@ -5256,10 -5270,10 +5264,10 @@@ W:   http://accessrunner.sourceforge.net
  F:    drivers/usb/atm/cxacru.c
  
  CONFIDENTIAL COMPUTING THREAT MODEL FOR X86 VIRTUALIZATION (SNP/TDX)
 -M:    Elena Reshetova <[email protected]>
 -M:    Carlos Bilbao <[email protected]>
 -S:    Maintained
 -F:    Documentation/security/snp-tdx-threat-model.rst
 +M:    Elena Reshetova <[email protected]>
 +M:    Carlos Bilbao <[email protected]>
 +S:    Maintained
 +F:    Documentation/security/snp-tdx-threat-model.rst
  
  CONFIGFS
  M:    Joel Becker <[email protected]>
@@@ -5334,7 -5348,6 +5342,7 @@@ L:      [email protected]
  S:    Maintained
  F:    mm/memcontrol.c
  F:    mm/swap_cgroup.c
 +F:    samples/cgroup/*
  F:    tools/testing/selftests/cgroup/memcg_protection.m
  F:    tools/testing/selftests/cgroup/test_hugetlb_memcg.c
  F:    tools/testing/selftests/cgroup/test_kmem.c
@@@ -5519,12 -5532,6 +5527,12 @@@ F:    include/crypto
  F:    include/linux/crypto*
  F:    lib/crypto/
  
 +CRYPTO SPEED TEST COMPARE
 +M:    Wang Jinchao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    tools/crypto/tcrypt/tcrypt_speed_compare.py
 +
  CRYPTOGRAPHIC RANDOM NUMBER GENERATOR
  M:    Neil Horman <[email protected]>
  L:    [email protected]
@@@ -5884,7 -5891,7 +5892,7 @@@ DELL SYSTEMS MANAGEMENT BASE DRIVER (dc
  M:    Stuart Hayes <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/driver-api/dcdbas.rst
 +F:    Documentation/userspace-api/dcdbas.rst
  F:    drivers/platform/x86/dell/dcdbas.*
  
  DELL WMI DDV DRIVER
@@@ -6051,8 -6058,10 +6059,8 @@@ M:     Mikulas Patocka <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Maintained
 -W:    http://sources.redhat.com/dm
  Q:    http://patchwork.kernel.org/project/dm-devel/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
 -T:    quilt http://people.redhat.com/agk/patches/linux/editing/
  F:    Documentation/admin-guide/device-mapper/
  F:    drivers/md/Kconfig
  F:    drivers/md/Makefile
@@@ -6484,7 -6493,8 +6492,7 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/sun4i/sun8i*
  
  DRM DRIVER FOR ARM PL111 CLCD
 -M:    Emma Anholt <[email protected]>
 -S:    Supported
 +S:    Orphan
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/pl111/
  
@@@ -6599,7 -6609,8 +6607,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/panel/panel-himax-hx8394.c
  
  DRM DRIVER FOR HX8357D PANELS
 -M:    Emma Anholt <[email protected]>
 -S:    Maintained
 +S:    Orphan
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/himax,hx8357d.txt
  F:    drivers/gpu/drm/tiny/hx8357d.c
@@@ -6626,12 -6637,6 +6634,12 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/ilitek,ili9486.yaml
  F:    drivers/gpu/drm/tiny/ili9486.c
  
 +DRM DRIVER FOR ILITEK ILI9805 PANELS
 +M:    Michael Trimarchi <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/ilitek,ili9805.yaml
 +F:    drivers/gpu/drm/panel/panel-ilitek-ili9805.c
 +
  DRM DRIVER FOR JADARD JD9365DA-H3 MIPI-DSI LCD PANELS
  M:    Jagan Teki <[email protected]>
  S:    Maintained
@@@ -6860,12 -6865,6 +6868,12 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/ste,mcde.yaml
  F:    drivers/gpu/drm/mcde/
  
 +DRM DRIVER FOR SYNAPTICS R63353 PANELS
 +M:    Michael Trimarchi <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/synaptics,r63353.yaml
 +F:    drivers/gpu/drm/panel/panel-synaptics-r63353.c
 +
  DRM DRIVER FOR TI DLPC3433 MIPI DSI TO DMD BRIDGE
  M:    Jagan Teki <[email protected]>
  S:    Maintained
@@@ -6913,8 -6912,8 +6921,8 @@@ T:      git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/vboxvideo/
  
  DRM DRIVER FOR VMWARE VIRTUAL GPU
 -M:    Zack Rusin <zackr@vmware.com>
 -R:    VMware Graphics Reviewers <linux-graphics-maintainer@vmware.com>
 +M:    Zack Rusin <zack.rusin@broadcom.com>
 +R:    Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -7150,7 -7149,6 +7158,7 @@@ F:      include/linux/platform_data/shmob_dr
  DRM DRIVERS FOR ROCKCHIP
  M:    Sandy Huang <[email protected]>
  M:    Heiko Stübner <[email protected]>
 +M:    Andy Yan <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -7205,8 -7203,8 +7213,8 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/omapdrm/
  
  DRM DRIVERS FOR V3D
 -M:    Emma Anholt <[email protected]>
  M:    Melissa Wen <[email protected]>
 +M:    Maíra Canal <[email protected]>
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
@@@ -7214,6 -7212,7 +7222,6 @@@ F:      drivers/gpu/drm/v3d
  F:    include/uapi/drm/v3d_drm.h
  
  DRM DRIVERS FOR VC4
 -M:    Emma Anholt <[email protected]>
  M:    Maxime Ripard <[email protected]>
  S:    Supported
  T:    git git://github.com/anholt/linux
@@@ -7890,14 -7889,6 +7898,14 @@@ F:    include/uapi/linux/mdio.
  F:    include/uapi/linux/mii.h
  F:    net/core/of_net.c
  
 +ETHERNET PHY LIBRARY [RUST]
 +M:    FUJITA Tomonori <[email protected]>
 +R:    Trevor Gross <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    rust/kernel/net/phy.rs
 +
  EXEC & BINFMT API
  R:    Eric Biederman <[email protected]>
  R:    Kees Cook <[email protected]>
@@@ -7945,7 -7936,6 +7953,7 @@@ F:      include/uapi/linux/ext4.
  
  Extended Verification Module (EVM)
  M:    Mimi Zohar <[email protected]>
 +M:    Roberto Sassu <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
@@@ -8124,7 -8114,6 +8132,7 @@@ F:      include/trace/events/fs_dax.
  FILESYSTEMS (VFS and infrastructure)
  M:    Alexander Viro <[email protected]>
  M:    Christian Brauner <[email protected]>
 +R:    Jan Kara <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    fs/*
@@@ -8145,16 -8134,6 +8153,16 @@@ F:    fs/exportfs
  F:    fs/fhandle.c
  F:    include/linux/exportfs.h
  
 +FILESYSTEMS [IDMAPPED MOUNTS]
 +M:    Christian Brauner <[email protected]>
 +M:    Seth Forshee <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/filesystems/idmappings.rst
 +F:    fs/mnt_idmapping.c
 +F:    include/linux/mnt_idmapping.*
 +F:    tools/testing/selftests/mount_setattr/
 +
  FILESYSTEMS [IOMAP]
  M:    Christian Brauner <[email protected]>
  R:    Darrick J. Wong <[email protected]>
@@@ -8164,15 -8143,6 +8172,15 @@@ S:    Supporte
  F:    fs/iomap/
  F:    include/linux/iomap.h
  
 +FILESYSTEMS [STACKABLE]
 +M:    Miklos Szeredi <[email protected]>
 +M:    Amir Goldstein <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    fs/backing-file.c
 +F:    include/linux/backing-file.h
 +
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/input/joystick/fsia6b.c
  
 -FOCUSRITE SCARLETT GEN 2/3 MIXER DRIVER
 +FOCUSRITE SCARLETT2 MIXER DRIVER (Scarlett Gen 2+ and Clarett)
  M:    Geoffrey D. Bennett <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
 +W:    https://github.com/geoffreybennett/scarlett-gen2
 +B:    https://github.com/geoffreybennett/scarlett-gen2/issues
 +T:    git https://github.com/geoffreybennett/scarlett-gen2.git
 +F:    include/uapi/sound/scarlett2.h
  F:    sound/usb/mixer_scarlett2.c
  
  FORCEDETH GIGABIT ETHERNET DRIVER
@@@ -8571,6 -8538,7 +8579,6 @@@ L:      [email protected]
  S:    Maintained
  F:    sound/soc/fsl/fsl*
  F:    sound/soc/fsl/imx*
 -F:    sound/soc/fsl/mpc8610_hpcd.c
  
  FREESCALE SOC SOUND QMC DRIVER
  M:    Herve Codina <[email protected]>
@@@ -8948,6 -8916,13 +8956,13 @@@ F:    Documentation/filesystems/gfs2
  F:    fs/gfs2/
  F:    include/uapi/linux/gfs2_ondisk.h
  
+ GIGABYTE WATERFORCE SENSOR DRIVER
+ M:    Aleksa Savic <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/hwmon/gigabyte_waterforce.rst
+ F:    drivers/hwmon/gigabyte_waterforce.c
  GIGABYTE WMI DRIVER
  M:    Thomas Weißschuh <[email protected]>
  L:    [email protected]
@@@ -8994,16 -8969,6 +9009,16 @@@ S:    Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
  F:    drivers/firmware/google/
  
 +GOOGLE TENSOR SoC SUPPORT
 +M:    Peter Griffin <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
 +F:    arch/arm64/boot/dts/exynos/google/
 +F:    drivers/clk/samsung/clk-gs101.c
 +F:    include/dt-bindings/clock/google,gs101.h
 +
  GPD POCKET FAN DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
@@@ -9043,7 -9008,7 +9058,7 @@@ F:      drivers/gpio/gpio-mockup.
  F:    tools/testing/selftests/gpio/
  
  GPIO REGMAP
 -M:    Michael Walle <m[email protected]>
 +M:    Michael Walle <m[email protected]>
  S:    Maintained
  F:    drivers/gpio/gpio-regmap.c
  F:    include/linux/gpio/regmap.h
@@@ -9052,9 -9017,12 +9067,9 @@@ K:     (devm_)?gpio_regmap_(un)?registe
  GPIO SUBSYSTEM
  M:    Linus Walleij <[email protected]>
  M:    Bartosz Golaszewski <[email protected]>
 -R:    Andy Shevchenko <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
 -F:    Documentation/ABI/obsolete/sysfs-gpio
 -F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/admin-guide/gpio/
  F:    Documentation/devicetree/bindings/gpio/
  F:    Documentation/driver-api/gpio/
@@@ -9063,16 -9031,6 +9078,16 @@@ F:    include/dt-bindings/gpio
  F:    include/linux/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/of_gpio.h
 +
 +GPIO UAPI
 +M:    Bartosz Golaszewski <[email protected]>
 +R:    Kent Gibson <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
 +F:    Documentation/ABI/obsolete/sysfs-gpio
 +F:    Documentation/ABI/testing/gpio-cdev
 +F:    drivers/gpio/gpiolib-cdev.c
  F:    include/uapi/linux/gpio.h
  F:    tools/gpio/
  
@@@ -9315,6 -9273,7 +9330,6 @@@ F:      drivers/char/hw_random
  F:    include/linux/hw_random.h
  
  HARDWARE SPINLOCK CORE
 -M:    Ohad Ben-Cohen <[email protected]>
  M:    Bjorn Andersson <[email protected]>
  R:    Baolin Wang <[email protected]>
  L:    [email protected]
@@@ -9543,7 -9502,6 +9558,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    drivers/gpio/gpio-hisi.c
  
  HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
 +M:    Zhiqi Song <[email protected]>
  M:    Longfang Liu <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9583,7 -9541,6 +9598,7 @@@ F:      drivers/bus/hisi_lpc.
  HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
  M:    Yisen Zhuang <[email protected]>
  M:    Salil Mehta <[email protected]>
 +M:    Jijie Shao <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.hisilicon.com
@@@ -9646,6 -9603,7 +9661,6 @@@ F:      Documentation/devicetree/bindings/sc
  F:    drivers/scsi/hisi_sas/
  
  HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
 -M:    Kai Ye <[email protected]>
  M:    Longfang Liu <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9712,6 -9670,11 +9727,6 @@@ S:     Maintaine
  F:    Documentation/devicetree/bindings/iio/pressure/honeywell,mprls0025pa.yaml
  F:    drivers/iio/pressure/mprls0025pa.c
  
 -HOST AP DRIVER
 -L:    [email protected]
 -S:    Obsolete
 -F:    drivers/net/wireless/intersil/hostap/
 -
  HP BIOSCFG DRIVER
  M:    Jorge Lopez <[email protected]>
  L:    [email protected]
@@@ -9814,6 -9777,7 +9829,6 @@@ F:      Documentation/networking/device_driv
  F:    drivers/net/ethernet/huawei/hinic/
  
  HUGETLB SUBSYSTEM
 -M:    Mike Kravetz <[email protected]>
  M:    Muchun Song <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9837,8 -9801,8 +9852,8 @@@ T:      git git://linuxtv.org/media_tree.gi
  F:    drivers/media/platform/st/sti/hva
  
  HWPOISON MEMORY FAILURE HANDLING
 -M:    Naoya Horiguchi <naoya.horiguchi@nec.com>
 -R:    Miaohe Lin <linmiaohe@huawei.com>
 +M:    Miaohe Lin <linmiaohe@huawei.com>
 +R:    Naoya Horiguchi <naoya.horiguchi@nec.com>
  L:    [email protected]
  S:    Maintained
  F:    mm/hwpoison-inject.c
@@@ -10249,6 -10213,16 +10264,6 @@@ S:  Maintaine
  W:    https://github.com/o2genum/ideapad-slidebar
  F:    drivers/input/misc/ideapad_slidebar.c
  
 -IDMAPPED MOUNTS
 -M:    Christian Brauner <[email protected]>
 -M:    Seth Forshee <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping.git
 -F:    Documentation/filesystems/idmappings.rst
 -F:    include/linux/mnt_idmapping.*
 -F:    tools/testing/selftests/mount_setattr/
 -
  IDT VersaClock 5 CLOCK DRIVER
  M:    Luca Ceresoli <[email protected]>
  S:    Maintained
@@@ -10382,17 -10356,6 +10397,17 @@@ IMGTEC IR DECODER DRIVE
  S:    Orphan
  F:    drivers/media/rc/img-ir/
  
 +IMGTEC POWERVR DRM DRIVER
 +M:    Frank Binns <[email protected]>
 +M:    Donald Robson <[email protected]>
 +M:    Matt Coster <[email protected]>
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/gpu/img,powervr.yaml
 +F:    Documentation/gpu/imagination/
 +F:    drivers/gpu/drm/imagination/
 +F:    include/uapi/drm/pvr_drm.h
 +
  IMON SOUNDGRAPH USB IR RECEIVER
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -10552,9 -10515,7 +10567,9 @@@ F:   drivers/crypto/inside-secure
  
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  M:    Mimi Zohar <[email protected]>
 +M:    Roberto Sassu <[email protected]>
  M:    Dmitry Kasatkin <[email protected]>
 +R:    Eric Snowberg <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git
@@@ -10632,26 -10593,16 +10647,26 @@@ L:        [email protected]
  S:    Supported
  F:    arch/x86/include/asm/intel-family.h
  
 -INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
 +INTEL DRM DISPLAY FOR XE AND I915 DRIVERS
 +M:    Jani Nikula <[email protected]>
 +M:    Rodrigo Vivi <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/gpu/drm/i915/display/
 +F:    drivers/gpu/drm/xe/display/
 +F:    drivers/gpu/drm/xe/compat-i915-headers
 +
 +INTEL DRM I915 DRIVER (Meteor Lake, DG2 and older excluding Poulsbo, Moorestown and derivative)
  M:    Jani Nikula <[email protected]>
  M:    Joonas Lahtinen <[email protected]>
  M:    Rodrigo Vivi <[email protected]>
  M:    Tvrtko Ursulin <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://01.org/linuxgraphics/
 +W:    https://drm.pages.freedesktop.org/intel-docs/
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
 -B:    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 +B:    https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html
  C:    irc://irc.oftc.net/intel-gfx
  T:    git git://anongit.freedesktop.org/drm-intel
  F:    Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
@@@ -10661,23 -10612,6 +10676,23 @@@ F: drivers/gpu/drm/i915
  F:    include/drm/i915*
  F:    include/uapi/drm/i915_drm.h
  
 +INTEL DRM XE DRIVER (Lunar Lake and newer)
 +M:    Lucas De Marchi <[email protected]>
 +M:    Oded Gabbay <[email protected]>
 +M:    Thomas Hellström <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://drm.pages.freedesktop.org/intel-docs/
 +Q:    http://patchwork.freedesktop.org/project/intel-xe/
 +B:    https://gitlab.freedesktop.org/drm/xe/kernel/-/issues
 +C:    irc://irc.oftc.net/xe
 +T:    git https://gitlab.freedesktop.org/drm/xe/kernel.git
 +F:    Documentation/ABI/testing/sysfs-driver-intel-xe-hwmon
 +F:    Documentation/gpu/xe/
 +F:    drivers/gpu/drm/xe/
 +F:    include/drm/xe*
 +F:    include/uapi/drm/xe_drm.h
 +
  INTEL ETHERNET DRIVERS
  M:    Jesse Brandeburg <[email protected]>
  M:    Tony Nguyen <[email protected]>
@@@ -10721,7 -10655,6 +10736,7 @@@ F:   drivers/gpio/gpio-pch.
  F:    drivers/gpio/gpio-sch.c
  F:    drivers/gpio/gpio-sodaville.c
  F:    drivers/gpio/gpio-tangier.c
 +F:    drivers/gpio/gpio-tangier.h
  
  INTEL GVT-g DRIVERS (Intel GPU Virtualization)
  M:    Zhenyu Wang <[email protected]>
@@@ -10747,13 -10680,6 +10762,13 @@@ S: Supporte
  Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  F:    drivers/dma/ioat*
  
 +INTEL IAA CRYPTO DRIVER
 +M:    Tom Zanussi <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/driver-api/crypto/iaa/iaa-crypto.rst
 +F:    drivers/crypto/intel/iaa/*
 +
  INTEL IDLE DRIVER
  M:    Jacob Pan <[email protected]>
  M:    Len Brown <[email protected]>
@@@ -11052,7 -10978,6 +11067,7 @@@ F:   drivers/net/wireless/intel/iwlegacy
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Gregory Greenman <[email protected]>
 +M:    Miri Korenblit <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
  S:    Maintained
  T:    git git://git.kernel.dk/linux-block
  T:    git git://git.kernel.dk/liburing
 +F:    include/linux/io_uring/
  F:    include/linux/io_uring.h
  F:    include/linux/io_uring_types.h
  F:    include/trace/events/io_uring.h
@@@ -11288,7 -11212,7 +11303,7 @@@ F:   drivers/media/radio/radio-isa
  ISAPNP
  M:    Jaroslav Kysela <[email protected]>
  S:    Maintained
 -F:    Documentation/driver-api/isapnp.rst
 +F:    Documentation/userspace-api/isapnp.rst
  F:    drivers/pnp/isapnp/
  F:    include/linux/isapnp.h
  
@@@ -11561,7 -11485,6 +11576,7 @@@ F:   scripts/*vmlinux
  F:    scripts/Kbuild*
  F:    scripts/Makefile*
  F:    scripts/basic/
 +F:    scripts/clang-tools/
  F:    scripts/dummy-tools/
  F:    scripts/mk*
  F:    scripts/mod/
@@@ -12061,14 -11984,6 +12076,14 @@@ S: Maintaine
  F:    arch/mips/lantiq
  F:    drivers/soc/lantiq
  
 +LANTIQ PEF2256 DRIVER
 +M:    Herve Codina <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/lantiq,pef2256.yaml
 +F:    drivers/net/wan/framer/pef2256/
 +F:    drivers/pinctrl/pinctrl-pef2256.c
 +F:    include/linux/framer/pef2256.h
 +
  LASI 53c700 driver for PARISC
  M:    "James E.J. Bottomley" <[email protected]>
  L:    [email protected]
@@@ -12196,10 -12111,9 +12211,10 @@@ F: drivers/ata/sata_promise.
  
  LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
  M:    Damien Le Moal <[email protected]>
 +M:    Niklas Cassel <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git
  F:    Documentation/ABI/testing/sysfs-ata
  F:    Documentation/devicetree/bindings/ata/
  F:    drivers/ata/
@@@ -12290,8 -12204,6 +12305,8 @@@ LINUX FOR POWERPC (32-BIT AND 64-BIT
  M:    Michael Ellerman <[email protected]>
  R:    Nicholas Piggin <[email protected]>
  R:    Christophe Leroy <[email protected]>
 +R:    Aneesh Kumar K.V <[email protected]>
 +R:    Naveen N. Rao <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linuxppc/wiki/wiki
@@@ -12337,21 -12249,21 +12352,21 @@@ S:        Orpha
  F:    arch/powerpc/platforms/40x/
  F:    arch/powerpc/platforms/44x/
  
 -LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
 +LINUX FOR POWERPC EMBEDDED PPC85XX
  M:    Scott Wood <[email protected]>
  L:    [email protected]
  S:    Odd fixes
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
  F:    Documentation/devicetree/bindings/cache/freescale-l2cache.txt
  F:    Documentation/devicetree/bindings/powerpc/fsl/
 -F:    arch/powerpc/platforms/83xx/
  F:    arch/powerpc/platforms/85xx/
  
 -LINUX FOR POWERPC EMBEDDED PPC8XX
 +LINUX FOR POWERPC EMBEDDED PPC8XX AND PPC83XX
  M:    Christophe Leroy <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/powerpc/platforms/8xx/
 +F:    arch/powerpc/platforms/83xx/
  
  LINUX KERNEL DUMP TEST MODULE (LKDTM)
  M:    Kees Cook <[email protected]>
@@@ -12498,12 -12410,6 +12513,12 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/admin-guide/LSM/LoadPin.rst
  F:    security/loadpin/
  
 +LOCKDOWN SECURITY MODULE
 +L:    [email protected]
 +S:    Odd Fixes
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +F:    security/lockdown/
 +
  LOCKING PRIMITIVES
  M:    Peter Zijlstra <[email protected]>
  M:    Ingo Molnar <[email protected]>
@@@ -12515,7 -12421,7 +12530,7 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
  F:    Documentation/locking/
  F:    arch/*/include/asm/spinlock*.h
 -F:    include/linux/lockdep.h
 +F:    include/linux/lockdep*.h
  F:    include/linux/mutex*.h
  F:    include/linux/rwlock*.h
  F:    include/linux/rwsem*.h
@@@ -12686,6 -12592,16 +12701,16 @@@ S: Maintaine
  F:    Documentation/hwmon/ltc4261.rst
  F:    drivers/hwmon/ltc4261.c
  
+ LTC4286 HARDWARE MONITOR DRIVER
+ M:    Delphine CC Chiu <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml
+ F:    Documentation/hwmon/ltc4286.rst
+ F:    drivers/hwmon/pmbus/Kconfig
+ F:    drivers/hwmon/pmbus/Makefile
+ F:    drivers/hwmon/pmbus/ltc4286.c
  LTC4306 I2C MULTIPLEXER DRIVER
  M:    Michael Hennerich <[email protected]>
  L:    [email protected]
@@@ -12800,7 -12716,7 +12825,7 @@@ F:   drivers/mailbox/arm_mhuv2.
  F:    include/linux/mailbox/arm_mhuv2_message.h
  
  MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
 -M:    Michael Kerrisk <[email protected]>
 +M:    Alejandro Colomar <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.kernel.org/doc/man-pages
@@@ -12840,8 -12756,7 +12865,8 @@@ MARVELL 88E6XXX ETHERNET SWITCH FABRIC 
  M:    Andrew Lunn <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/dsa/marvell.txt
 +F:    Documentation/devicetree/bindings/net/dsa/marvell,mv88e6060.yaml
 +F:    Documentation/devicetree/bindings/net/dsa/marvell,mv88e6xxx.yaml
  F:    Documentation/networking/devlink/mv88e6xxx.rst
  F:    drivers/net/dsa/mv88e6xxx/
  F:    include/linux/dsa/mv88e6xxx.h
@@@ -12924,7 -12839,7 +12949,7 @@@ S:   Maintaine
  F:    drivers/net/ethernet/marvell/mvneta.*
  
  MARVELL MVPP2 ETHERNET DRIVER
 -M:    Marcin Wojtas <mw@semihalf.com>
 +M:    Marcin Wojtas <marcin.s.wojtas@gmail.com>
  M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -15043,7 -14958,6 +15068,7 @@@ Q:   https://patchwork.kernel.org/project
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    Documentation/devicetree/bindings/net/
 +F:    Documentation/networking/net_cachelines/net_device.rst
  F:    drivers/connector/
  F:    drivers/net/
  F:    include/dt-bindings/net/
@@@ -15099,7 -15013,6 +15124,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/core-api/netlink.rst
  F:    Documentation/netlink/
  F:    Documentation/networking/
 +F:    Documentation/networking/net_cachelines/
  F:    Documentation/process/maintainer-netdev.rst
  F:    Documentation/userspace-api/netlink/
  F:    include/linux/in.h
@@@ -15189,7 -15102,6 +15214,7 @@@ K:   \bmdo
  NETWORKING [MPTCP]
  M:    Matthieu Baerts <[email protected]>
  M:    Mat Martineau <[email protected]>
 +R:    Geliang Tang <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -15197,7 -15109,7 +15222,7 @@@ W:   https://github.com/multipath-tcp/mpt
  B:    https://github.com/multipath-tcp/mptcp_net-next/issues
  T:    git https://github.com/multipath-tcp/mptcp_net-next.git export-net
  T:    git https://github.com/multipath-tcp/mptcp_net-next.git export
 -F:    Documentation/netlink/specs/mptcp.yaml
 +F:    Documentation/netlink/specs/mptcp_pm.yaml
  F:    Documentation/networking/mptcp-sysctl.rst
  F:    include/net/mptcp.h
  F:    include/trace/events/mptcp.h
@@@ -15210,7 -15122,6 +15235,7 @@@ NETWORKING [TCP
  M:    Eric Dumazet <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/networking/net_cachelines/tcp_sock.rst
  F:    include/linux/tcp.h
  F:    include/net/tcp.h
  F:    include/trace/events/tcp.h
@@@ -15538,10 -15449,10 +15563,10 @@@ F:        Documentation/devicetree/bindings/ne
  F:    drivers/bluetooth/btnxpuart.c
  
  NXP C45 TJA11XX PHY DRIVER
 -M:    Radu Pirea <radu-nicolae.pire[email protected]>
 +M:    Andrei Botila <andrei.botil[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/net/phy/nxp-c45-tja11xx.c
 +F:    drivers/net/phy/nxp-c45-tja11xx*
  
  NXP FSPI DRIVER
  M:    Han Xu <[email protected]>
@@@ -15809,8 -15720,9 +15834,8 @@@ F:   Documentation/devicetree/bindings/gp
  F:    drivers/gpio/gpio-omap.c
  
  OMAP HARDWARE SPINLOCK SUPPORT
 -M:    Ohad Ben-Cohen <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    drivers/hwspinlock/omap_hwspinlock.c
  
  OMAP HS MMC SUPPORT
@@@ -15910,7 -15822,6 +15935,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/arm/ti/omap.yaml
  F:    arch/arm/configs/omap2plus_defconfig
  F:    arch/arm/mach-omap2/
 +F:    drivers/bus/omap*.[ch]
  F:    drivers/bus/ti-sysc.c
  F:    drivers/gpio/gpio-tps65219.c
  F:    drivers/i2c/busses/i2c-omap.c
@@@ -16242,7 -16153,7 +16267,7 @@@ F:   include/dt-bindings
  
  OPENCOMPUTE PTP CLOCK DRIVER
  M:    Jonathan Lemon <[email protected]>
 -M:    Vadim Fedorenko <vadfed@fb.com>
 +M:    Vadim Fedorenko <vadfed@linux.dev>
  L:    [email protected]
  S:    Maintained
  F:    drivers/ptp/ptp_ocp.c
@@@ -16320,6 -16231,13 +16345,6 @@@ T:  git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/orangefs.rst
  F:    fs/orangefs/
  
 -ORINOCO DRIVER
 -L:    [email protected]
 -S:    Orphan
 -W:    https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
 -W:    http://www.nongnu.org/orinoco/
 -F:    drivers/net/wireless/intersil/orinoco/
 -
  OV2659 OMNIVISION SENSOR DRIVER
  M:    "Lad, Prabhakar" <[email protected]>
  L:    [email protected]
@@@ -16555,10 -16473,11 +16580,10 @@@ F:        Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/dwc/pcie-armada8k.c
  
  PCI DRIVER FOR CADENCE PCIE IP
 -M:    Tom Joseph <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/devicetree/bindings/pci/cdns,*
 -F:    drivers/pci/controller/cadence/
 +F:    drivers/pci/controller/cadence/*cadence*
  
  PCI DRIVER FOR FREESCALE LAYERSCAPE
  M:    Minghuan Lian <[email protected]>
@@@ -17465,7 -17384,7 +17490,7 @@@ F:   tools/testing/selftests/proc
  PROC SYSCTL
  M:    Luis Chamberlain <[email protected]>
  M:    Kees Cook <[email protected]>
 -M:    Iurii Zaikin <yzaikin@google.com>
 +M:    Joel Granados <j.granados@samsung.com>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -18211,6 -18130,11 +18236,6 @@@ F:  drivers/ras
  F:    include/linux/ras.h
  F:    include/ras/ras_event.h
  
 -RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wireless/legacy/ray*
 -
  RC-CORE / LIRC FRAMEWORK
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -18678,7 -18602,6 +18703,7 @@@ F:   Documentation/devicetree/bindings/us
  F:    arch/riscv/boot/dts/microchip/
  F:    drivers/char/hw_random/mpfs-rng.c
  F:    drivers/clk/microchip/clk-mpfs*.c
 +F:    drivers/firmware/microchip/mpfs-auto-update.c
  F:    drivers/i2c/busses/i2c-microchip-corei2c.c
  F:    drivers/mailbox/mailbox-mpfs.c
  F:    drivers/pci/controller/pcie-microchip-host.c
@@@ -19536,29 -19459,22 +19561,29 @@@ SECURITY SUBSYSTE
  M:    Paul Moore <[email protected]>
  M:    James Morris <[email protected]>
  M:    "Serge E. Hallyn" <[email protected]>
 -L:    [email protected] (suggested Cc:)
 +L:    [email protected]
  S:    Supported
 -W:    http://kernsec.org/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +Q:    https://patchwork.kernel.org/project/linux-security-module/list
 +B:    mailto:[email protected]
 +P:    https://github.com/LinuxSecurityModule/kernel/blob/main/README.md
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +F:    include/uapi/linux/lsm.h
  F:    security/
 +F:    tools/testing/selftests/lsm/
  X:    security/selinux/
 +K:    \bsecurity_[a-z_0-9]\+\b
  
  SELINUX SECURITY MODULE
  M:    Paul Moore <[email protected]>
  M:    Stephen Smalley <[email protected]>
 -M:    Eric Paris <[email protected]>
 +R:    Ondrej Mosnacek <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://selinuxproject.org
  W:    https://github.com/SELinuxProject
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
 +Q:    https://patchwork.kernel.org/project/selinux/list
 +B:    mailto:[email protected]
 +P:    https://github.com/SELinuxProject/selinux-kernel/blob/main/README.md
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
  F:    Documentation/ABI/removed/sysfs-selinux-checkreqprot
  F:    Documentation/ABI/removed/sysfs-selinux-disable
  F:    Documentation/admin-guide/LSM/SELinux.rst
@@@ -19673,6 -19589,7 +19698,6 @@@ S:   Maintaine
  F:    drivers/misc/sgi-xp/
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
 -M:    Karsten Graul <[email protected]>
  M:    Wenjia Zhang <[email protected]>
  M:    Jan Karcher <[email protected]>
  R:    D. Wythe <[email protected]>
@@@ -19814,13 -19731,6 +19839,13 @@@ S: Supporte
  N:    sifive
  K:    [^@]sifive
  
 +SIFIVE CACHE DRIVER
 +M:    Conor Dooley <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/cache/sifive,ccache0.yaml
 +F:    drivers/cache/sifive_ccache.c
 +
  SIFIVE FU540 SYSTEM-ON-CHIP
  M:    Paul Walmsley <[email protected]>
  M:    Palmer Dabbelt <[email protected]>
@@@ -19836,6 -19746,13 +19861,6 @@@ S:  Maintaine
  F:    Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
  F:    drivers/dma/sf-pdma/
  
 -SIFIVE SOC DRIVERS
 -M:    Conor Dooley <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 -F:    Documentation/devicetree/bindings/cache/sifive,ccache0.yaml
 -F:    drivers/soc/sifive/
  
  SILEAD TOUCHSCREEN DRIVER
  M:    Hans de Goede <[email protected]>
@@@ -19876,6 -19793,11 +19901,6 @@@ F:  Documentation/devicetree/bindings/di
  F:    drivers/video/fbdev/simplefb.c
  F:    include/linux/platform_data/simplefb.h
  
 -SIMTEC EB110ATX (Chalice CATS)
 -M:    Simtec Linux Team <[email protected]>
 -S:    Supported
 -W:    http://www.simtec.co.uk/products/EB110ATX/
 -
  SIOX
  M:    Thorsten Scherer <[email protected]>
  M:    Uwe Kleine-König <[email protected]>
@@@ -19925,7 -19847,7 +19950,7 @@@ W:   http://www.winischhofer.at/linuxsisu
  F:    drivers/usb/misc/sisusbvga/
  
  SL28 CPLD MFD DRIVER
 -M:    Michael Walle <m[email protected]>
 +M:    Michael Walle <m[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml
  F:    Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml
@@@ -19940,7 -19862,7 +19965,7 @@@ F:   drivers/pwm/pwm-sl28cpld.
  F:    drivers/watchdog/sl28cpld_wdt.c
  
  SL28 VPD NVMEM LAYOUT DRIVER
 -M:    Michael Walle <m[email protected]>
 +M:    Michael Walle <m[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
  F:    drivers/nvmem/layouts/sl28vpd.c
@@@ -20130,7 -20052,6 +20155,7 @@@ F:   include/linux/property.
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Song Liu <[email protected]>
 +R:    Yu Kuai <[email protected]>
  L:    [email protected]
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-raid/list/
@@@ -20385,7 -20306,6 +20410,7 @@@ F:   drivers/media/dvb-frontends/sp2
  
  SPANISH DOCUMENTATION
  M:    Carlos Bilbao <[email protected]>
 +R:    Avadhut Naik <[email protected]>
  S:    Maintained
  F:    Documentation/translations/sp_SP/
  
@@@ -20452,7 -20372,7 +20477,7 @@@ F:   drivers/pinctrl/spear
  SPI NOR SUBSYSTEM
  M:    Tudor Ambarus <[email protected]>
  M:    Pratyush Yadav <[email protected]>
 -R:    Michael Walle <[email protected]>
 +M:    Michael Walle <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mtd.infradead.org/
  S:    Maintained
  F:    drivers/mmc/host/dw_mmc*
  
 +SYNOPSYS DESIGNWARE PCIE PMU DRIVER
 +M:    Shuai Xue <[email protected]>
 +M:    Jing Zhang <[email protected]>
 +S:    Supported
 +F:    Documentation/admin-guide/perf/dwc_pcie_pmu.rst
 +F:    drivers/perf/dwc_pcie_pmu.c
 +
  SYNOPSYS HSDK RESET CONTROLLER DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Supported
@@@ -21375,9 -21288,7 +21400,9 @@@ M:   Jens Wiklander <jens.wiklander@linar
  R:    Sumit Garg <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/staging/tee.rst
 +F:    Documentation/driver-api/tee.rst
 +F:    Documentation/tee/
 +F:    Documentation/userspace-api/tee.rst
  F:    drivers/tee/
  F:    include/linux/tee_drv.h
  F:    include/uapi/linux/tee.h
@@@ -22148,7 -22059,7 +22173,7 @@@ F:   kernel/trace/trace_osnoise.
  F:    kernel/trace/trace_sched_wakeup.c
  
  TRADITIONAL CHINESE DOCUMENTATION
 -M:    Hu Haowen <[email protected]>
 +M:    Hu Haowen <[email protected]>
  S:    Maintained
  W:    https://github.com/srcres258/linux-doc
  T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
@@@ -22331,7 -22242,7 +22356,7 @@@ F:   drivers/usb/common/ulpi.
  F:    include/linux/ulpi/
  
  UNICODE SUBSYSTEM
 -M:    Gabriel Krisman Bertazi <krisman@collabora.com>
 +M:    Gabriel Krisman Bertazi <krisman@kernel.org>
  L:    [email protected]
  S:    Supported
  F:    fs/unicode/
@@@ -22373,8 -22284,7 +22398,8 @@@ S:   Maintaine
  F:    drivers/ufs/host/ufs-exynos*
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
 -M:    Stanley Chu <[email protected]>
 +M:    Peter Wang <[email protected]>
 +R:    Stanley Jhu <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -22705,6 -22615,11 +22730,6 @@@ F:  drivers/usb/gadget/function/*uvc
  F:    drivers/usb/gadget/legacy/webcam.c
  F:    include/uapi/linux/usb/g_uvc.h
  
 -USB WIRELESS RNDIS DRIVER (rndis_wlan)
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wireless/legacy/rndis_wlan.c
 -
  USB XHCI DRIVER
  M:    Mathias Nyman <[email protected]>
  L:    [email protected]
@@@ -22712,6 -22627,12 +22737,6 @@@ S:  Supporte
  F:    drivers/usb/host/pci-quirks*
  F:    drivers/usb/host/xhci*
  
 -USB ZD1201 DRIVER
 -L:    [email protected]
 -S:    Orphan
 -W:    http://linux-lc100020.sourceforge.net
 -F:    drivers/net/wireless/zydas/zd1201.*
 -
  USER DATAGRAM PROTOCOL (UDP)
  M:    Willem de Bruijn <[email protected]>
  S:    Maintained
@@@ -23311,8 -23232,9 +23336,8 @@@ F:   drivers/misc/vmw_vmci
  F:    include/linux/vmw_vmci*
  
  VMWARE VMMOUSE SUBDRIVER
 -M:    Zack Rusin <[email protected]>
 -R:    VMware Graphics Reviewers <[email protected]>
 -R:    VMware PV-Drivers Reviewers <[email protected]>
 +M:    Zack Rusin <[email protected]>
 +R:    Broadcom internal kernel review list <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/input/mouse/vmmouse.c
@@@ -23512,6 -23434,11 +23537,6 @@@ M:  Miloslav Trmac <[email protected]
  S:    Maintained
  F:    drivers/input/misc/wistron_btns.c
  
 -WL3501 WIRELESS PCMCIA CARD DRIVER
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/net/wireless/legacy/wl3501*
 -
  WMI BINARY MOF DRIVER
  M:    Armin Wolf <[email protected]>
  R:    Thomas Weißschuh <[email protected]>
@@@ -23681,6 -23608,15 +23706,6 @@@ F:  drivers/platform/olpc
  F:    drivers/platform/x86/
  F:    include/linux/platform_data/x86/
  
 -X86 PLATFORM DRIVERS - ARCH
 -R:    Darren Hart <[email protected]>
 -R:    Andy Shevchenko <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
 -F:    arch/x86/platform
 -
  X86 PLATFORM UV HPE SUPERDOME FLEX
  M:    Steve Wahl <[email protected]>
  R:    Justin Ernst <[email protected]>
@@@ -23892,10 -23828,10 +23917,10 @@@ S:        Supporte
  W:    http://xfs.org/
  C:    irc://irc.oftc.net/xfs
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
 -P:    Documentation/filesystems/xfs-maintainer-entry-profile.rst
 +P:    Documentation/filesystems/xfs/xfs-maintainer-entry-profile.rst
  F:    Documentation/ABI/testing/sysfs-fs-xfs
  F:    Documentation/admin-guide/xfs.rst
 -F:    Documentation/filesystems/xfs-*
 +F:    Documentation/filesystems/xfs/*
  F:    fs/xfs/
  F:    include/uapi/linux/dqblk_xfs.h
  F:    include/uapi/linux/fsmap.h
index a7cfcbf92432c72f26e25577b4fa381e1b6a316d,b054f68ead86cf29ed033641fbaa2e937df7bc05..bd271a5730aa51f1c1e6286e2b481e865799b79a
  #include <linux/init.h>
  #include <linux/kernel.h>
  #include <linux/list.h>
 -#include <linux/miscdevice.h>
  #include <linux/module.h>
  #include <linux/platform_device.h>
  #include <linux/slab.h>
  #include <linux/sysfs.h>
  #include <linux/types.h>
 -#include <linux/uaccess.h>
  #include <linux/uuid.h>
  #include <linux/wmi.h>
  #include <linux/fs.h>
 -#include <uapi/linux/wmi.h>
  
  MODULE_AUTHOR("Carlos Corbacho");
  MODULE_DESCRIPTION("ACPI-WMI Mapping Driver");
@@@ -63,9 -66,12 +63,9 @@@ struct wmi_block 
        struct wmi_device dev;
        struct list_head list;
        struct guid_block gblock;
 -      struct miscdevice char_dev;
 -      struct mutex char_mutex;
        struct acpi_device *acpi_device;
        wmi_notify_handler handler;
        void *handler_data;
 -      u64 req_buf_size;
        unsigned long flags;
  };
  
  #define ACPI_WMI_STRING      BIT(2)   /* GUID takes & returns a string */
  #define ACPI_WMI_EVENT       BIT(3)   /* GUID is an event */
  
 -static bool debug_event;
 -module_param(debug_event, bool, 0444);
 -MODULE_PARM_DESC(debug_event,
 -               "Log WMI Events [0/1]");
 -
 -static bool debug_dump_wdg;
 -module_param(debug_dump_wdg, bool, 0444);
 -MODULE_PARM_DESC(debug_dump_wdg,
 -               "Dump available WMI interfaces [0/1]");
 -
  static const struct acpi_device_id wmi_device_ids[] = {
        {"PNP0C14", 0},
        {"pnp0c14", 0},
@@@ -90,8 -106,7 +90,9 @@@ MODULE_DEVICE_TABLE(acpi, wmi_device_id
  static const char * const allow_duplicates[] = {
        "05901221-D566-11D1-B2F0-00A0C9062910", /* wmi-bmof */
        "8A42EA14-4F2A-FD45-6422-0087F7A7E608", /* dell-wmi-ddv */
 +      "44FADEB1-B204-40F2-8581-394BBDC1B651", /* intel-wmi-sbl-fw-update */
 +      "86CCFD48-205E-4A77-9C48-2021CBEDE341", /* intel-wmi-thunderbolt */
+       "F1DDEE52-063C-4784-A11E-8A06684B9B01", /* dell-smm-hwmon */
        NULL
  };
  
@@@ -132,19 -147,23 +133,19 @@@ static const void *find_guid_context(st
  static int get_subobj_info(acpi_handle handle, const char *pathname,
                           struct acpi_device_info **info)
  {
 -      struct acpi_device_info *dummy_info, **info_ptr;
        acpi_handle subobj_handle;
        acpi_status status;
  
 -      status = acpi_get_handle(handle, (char *)pathname, &subobj_handle);
 +      status = acpi_get_handle(handle, pathname, &subobj_handle);
        if (status == AE_NOT_FOUND)
                return -ENOENT;
 -      else if (ACPI_FAILURE(status))
 -              return -EIO;
  
 -      info_ptr = info ? info : &dummy_info;
 -      status = acpi_get_object_info(subobj_handle, info_ptr);
        if (ACPI_FAILURE(status))
                return -EIO;
  
 -      if (!info)
 -              kfree(dummy_info);
 +      status = acpi_get_object_info(subobj_handle, info);
 +      if (ACPI_FAILURE(status))
 +              return -EIO;
  
        return 0;
  }
@@@ -246,6 -265,26 +247,6 @@@ static void wmi_device_put(struct wmi_d
   * Exported WMI functions
   */
  
 -/**
 - * set_required_buffer_size - Sets the buffer size needed for performing IOCTL
 - * @wdev: A wmi bus device from a driver
 - * @length: Required buffer size
 - *
 - * Allocates memory needed for buffer, stores the buffer size in that memory.
 - *
 - * Return: 0 on success or a negative error code for failure.
 - */
 -int set_required_buffer_size(struct wmi_device *wdev, u64 length)
 -{
 -      struct wmi_block *wblock;
 -
 -      wblock = container_of(wdev, struct wmi_block, dev);
 -      wblock->req_buf_size = length;
 -
 -      return 0;
 -}
 -EXPORT_SYMBOL_GPL(set_required_buffer_size);
 -
  /**
   * wmi_instance_count - Get number of WMI object instances
   * @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba
@@@ -498,50 -537,41 +499,50 @@@ EXPORT_SYMBOL_GPL(wmidev_block_query)
   *
   * Return: acpi_status signaling success or error.
   */
 -acpi_status wmi_set_block(const char *guid_string, u8 instance,
 -                        const struct acpi_buffer *in)
 +acpi_status wmi_set_block(const char *guid_string, u8 instance, const struct acpi_buffer *in)
  {
 -      struct wmi_block *wblock;
 -      struct guid_block *block;
        struct wmi_device *wdev;
 -      acpi_handle handle;
 -      struct acpi_object_list input;
 -      union acpi_object params[2];
 -      char method[WMI_ACPI_METHOD_NAME_SIZE];
        acpi_status status;
  
 -      if (!in)
 -              return AE_BAD_DATA;
 -
        wdev = wmi_find_device_by_guid(guid_string);
        if (IS_ERR(wdev))
                return AE_ERROR;
  
 -      wblock = container_of(wdev, struct wmi_block, dev);
 -      block = &wblock->gblock;
 -      handle = wblock->acpi_device->handle;
 +      status =  wmidev_block_set(wdev, instance, in);
 +      wmi_device_put(wdev);
  
 -      if (block->instance_count <= instance) {
 -              status = AE_BAD_PARAMETER;
 +      return status;
 +}
 +EXPORT_SYMBOL_GPL(wmi_set_block);
  
 -              goto err_wdev_put;
 -      }
 +/**
 + * wmidev_block_set - Write to a WMI block
 + * @wdev: A wmi bus device from a driver
 + * @instance: Instance index
 + * @in: Buffer containing new values for the data block
 + *
 + * Write contents of the input buffer to an ACPI-WMI data block.
 + *
 + * Return: acpi_status signaling success or error.
 + */
 +acpi_status wmidev_block_set(struct wmi_device *wdev, u8 instance, const struct acpi_buffer *in)
 +{
 +      struct wmi_block *wblock = container_of(wdev, struct wmi_block, dev);
 +      acpi_handle handle = wblock->acpi_device->handle;
 +      struct guid_block *block = &wblock->gblock;
 +      char method[WMI_ACPI_METHOD_NAME_SIZE];
 +      struct acpi_object_list input;
 +      union acpi_object params[2];
  
 -      /* Check GUID is a data block */
 -      if (block->flags & (ACPI_WMI_EVENT | ACPI_WMI_METHOD)) {
 -              status = AE_ERROR;
 +      if (!in)
 +              return AE_BAD_DATA;
  
 -              goto err_wdev_put;
 -      }
 +      if (block->instance_count <= instance)
 +              return AE_BAD_PARAMETER;
 +
 +      /* Check GUID is a data block */
 +      if (block->flags & (ACPI_WMI_EVENT | ACPI_WMI_METHOD))
 +              return AE_ERROR;
  
        input.count = 2;
        input.pointer = params;
  
        get_acpi_method_name(wblock, 'S', method);
  
 -      status = acpi_evaluate_object(handle, method, &input, NULL);
 -
 -err_wdev_put:
 -      wmi_device_put(wdev);
 -
 -      return status;
 -}
 -EXPORT_SYMBOL_GPL(wmi_set_block);
 -
 -static void wmi_dump_wdg(const struct guid_block *g)
 -{
 -      pr_info("%pUL:\n", &g->guid);
 -      if (g->flags & ACPI_WMI_EVENT)
 -              pr_info("\tnotify_id: 0x%02X\n", g->notify_id);
 -      else
 -              pr_info("\tobject_id: %2pE\n", g->object_id);
 -      pr_info("\tinstance_count: %d\n", g->instance_count);
 -      pr_info("\tflags: %#x", g->flags);
 -      if (g->flags) {
 -              if (g->flags & ACPI_WMI_EXPENSIVE)
 -                      pr_cont(" ACPI_WMI_EXPENSIVE");
 -              if (g->flags & ACPI_WMI_METHOD)
 -                      pr_cont(" ACPI_WMI_METHOD");
 -              if (g->flags & ACPI_WMI_STRING)
 -                      pr_cont(" ACPI_WMI_STRING");
 -              if (g->flags & ACPI_WMI_EVENT)
 -                      pr_cont(" ACPI_WMI_EVENT");
 -      }
 -      pr_cont("\n");
 -
 -}
 -
 -static void wmi_notify_debug(u32 value, void *context)
 -{
 -      struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
 -      union acpi_object *obj;
 -      acpi_status status;
 -
 -      status = wmi_get_event_data(value, &response);
 -      if (status != AE_OK) {
 -              pr_info("bad event status 0x%x\n", status);
 -              return;
 -      }
 -
 -      obj = response.pointer;
 -      if (!obj)
 -              return;
 -
 -      pr_info("DEBUG: event 0x%02X ", value);
 -      switch (obj->type) {
 -      case ACPI_TYPE_BUFFER:
 -              pr_cont("BUFFER_TYPE - length %u\n", obj->buffer.length);
 -              break;
 -      case ACPI_TYPE_STRING:
 -              pr_cont("STRING_TYPE - %s\n", obj->string.pointer);
 -              break;
 -      case ACPI_TYPE_INTEGER:
 -              pr_cont("INTEGER_TYPE - %llu\n", obj->integer.value);
 -              break;
 -      case ACPI_TYPE_PACKAGE:
 -              pr_cont("PACKAGE_TYPE - %u elements\n", obj->package.count);
 -              break;
 -      default:
 -              pr_cont("object type 0x%X\n", obj->type);
 -      }
 -      kfree(obj);
 +      return acpi_evaluate_object(handle, method, &input, NULL);
  }
 +EXPORT_SYMBOL_GPL(wmidev_block_set);
  
  /**
   * wmi_install_notify_handler - Register handler for WMI events (deprecated)
@@@ -585,7 -679,8 +586,7 @@@ acpi_status wmi_install_notify_handler(
                acpi_status wmi_status;
  
                if (guid_equal(&block->gblock.guid, &guid_input)) {
 -                      if (block->handler &&
 -                          block->handler != wmi_notify_debug)
 +                      if (block->handler)
                                return AE_ALREADY_ACQUIRED;
  
                        block->handler = handler;
@@@ -626,14 -721,22 +627,14 @@@ acpi_status wmi_remove_notify_handler(c
                acpi_status wmi_status;
  
                if (guid_equal(&block->gblock.guid, &guid_input)) {
 -                      if (!block->handler ||
 -                          block->handler == wmi_notify_debug)
 +                      if (!block->handler)
                                return AE_NULL_ENTRY;
  
 -                      if (debug_event) {
 -                              block->handler = wmi_notify_debug;
 -                              status = AE_OK;
 -                      } else {
 -                              wmi_status = wmi_method_enable(block, false);
 -                              block->handler = NULL;
 -                              block->handler_data = NULL;
 -                              if ((wmi_status != AE_OK) ||
 -                                  ((wmi_status == AE_OK) &&
 -                                   (status == AE_NOT_EXIST)))
 -                                      status = wmi_status;
 -                      }
 +                      wmi_status = wmi_method_enable(block, false);
 +                      block->handler = NULL;
 +                      block->handler_data = NULL;
 +                      if (wmi_status != AE_OK || (wmi_status == AE_OK && status == AE_NOT_EXIST))
 +                              status = wmi_status;
                }
        }
  
@@@ -854,12 -957,111 +855,12 @@@ static int wmi_dev_match(struct device 
  
        return 0;
  }
 -static int wmi_char_open(struct inode *inode, struct file *filp)
 -{
 -      /*
 -       * The miscdevice already stores a pointer to itself
 -       * inside filp->private_data
 -       */
 -      struct wmi_block *wblock = container_of(filp->private_data, struct wmi_block, char_dev);
 -
 -      filp->private_data = wblock;
 -
 -      return nonseekable_open(inode, filp);
 -}
 -
 -static ssize_t wmi_char_read(struct file *filp, char __user *buffer,
 -                           size_t length, loff_t *offset)
 -{
 -      struct wmi_block *wblock = filp->private_data;
 -
 -      return simple_read_from_buffer(buffer, length, offset,
 -                                     &wblock->req_buf_size,
 -                                     sizeof(wblock->req_buf_size));
 -}
 -
 -static long wmi_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 -{
 -      struct wmi_ioctl_buffer __user *input =
 -              (struct wmi_ioctl_buffer __user *) arg;
 -      struct wmi_block *wblock = filp->private_data;
 -      struct wmi_ioctl_buffer *buf;
 -      struct wmi_driver *wdriver;
 -      int ret;
 -
 -      if (_IOC_TYPE(cmd) != WMI_IOC)
 -              return -ENOTTY;
 -
 -      /* make sure we're not calling a higher instance than exists*/
 -      if (_IOC_NR(cmd) >= wblock->gblock.instance_count)
 -              return -EINVAL;
 -
 -      mutex_lock(&wblock->char_mutex);
 -      buf = wblock->handler_data;
 -      if (get_user(buf->length, &input->length)) {
 -              dev_dbg(&wblock->dev.dev, "Read length from user failed\n");
 -              ret = -EFAULT;
 -              goto out_ioctl;
 -      }
 -      /* if it's too small, abort */
 -      if (buf->length < wblock->req_buf_size) {
 -              dev_err(&wblock->dev.dev,
 -                      "Buffer %lld too small, need at least %lld\n",
 -                      buf->length, wblock->req_buf_size);
 -              ret = -EINVAL;
 -              goto out_ioctl;
 -      }
 -      /* if it's too big, warn, driver will only use what is needed */
 -      if (buf->length > wblock->req_buf_size)
 -              dev_warn(&wblock->dev.dev,
 -                      "Buffer %lld is bigger than required %lld\n",
 -                      buf->length, wblock->req_buf_size);
 -
 -      /* copy the structure from userspace */
 -      if (copy_from_user(buf, input, wblock->req_buf_size)) {
 -              dev_dbg(&wblock->dev.dev, "Copy %llu from user failed\n",
 -                      wblock->req_buf_size);
 -              ret = -EFAULT;
 -              goto out_ioctl;
 -      }
 -
 -      /* let the driver do any filtering and do the call */
 -      wdriver = drv_to_wdrv(wblock->dev.dev.driver);
 -      if (!try_module_get(wdriver->driver.owner)) {
 -              ret = -EBUSY;
 -              goto out_ioctl;
 -      }
 -      ret = wdriver->filter_callback(&wblock->dev, cmd, buf);
 -      module_put(wdriver->driver.owner);
 -      if (ret)
 -              goto out_ioctl;
 -
 -      /* return the result (only up to our internal buffer size) */
 -      if (copy_to_user(input, buf, wblock->req_buf_size)) {
 -              dev_dbg(&wblock->dev.dev, "Copy %llu to user failed\n",
 -                      wblock->req_buf_size);
 -              ret = -EFAULT;
 -      }
 -
 -out_ioctl:
 -      mutex_unlock(&wblock->char_mutex);
 -      return ret;
 -}
 -
 -static const struct file_operations wmi_fops = {
 -      .owner          = THIS_MODULE,
 -      .read           = wmi_char_read,
 -      .open           = wmi_char_open,
 -      .unlocked_ioctl = wmi_ioctl,
 -      .compat_ioctl   = compat_ptr_ioctl,
 -};
  
  static int wmi_dev_probe(struct device *dev)
  {
        struct wmi_block *wblock = dev_to_wblock(dev);
        struct wmi_driver *wdriver = drv_to_wdrv(dev->driver);
        int ret = 0;
 -      char *buf;
  
        if (ACPI_FAILURE(wmi_method_enable(wblock, true)))
                dev_warn(dev, "failed to enable device -- probing anyway\n");
        if (wdriver->probe) {
                ret = wdriver->probe(dev_to_wdev(dev),
                                find_guid_context(wblock, wdriver));
 -              if (ret != 0)
 -                      goto probe_failure;
 -      }
 -
 -      /* driver wants a character device made */
 -      if (wdriver->filter_callback) {
 -              /* check that required buffer size declared by driver or MOF */
 -              if (!wblock->req_buf_size) {
 -                      dev_err(&wblock->dev.dev,
 -                              "Required buffer size not set\n");
 -                      ret = -EINVAL;
 -                      goto probe_failure;
 -              }
 -
 -              wblock->handler_data = kmalloc(wblock->req_buf_size,
 -                                             GFP_KERNEL);
 -              if (!wblock->handler_data) {
 -                      ret = -ENOMEM;
 -                      goto probe_failure;
 -              }
 +              if (!ret) {
 +                      if (ACPI_FAILURE(wmi_method_enable(wblock, false)))
 +                              dev_warn(dev, "Failed to disable device\n");
  
 -              buf = kasprintf(GFP_KERNEL, "wmi/%s", wdriver->driver.name);
 -              if (!buf) {
 -                      ret = -ENOMEM;
 -                      goto probe_string_failure;
 -              }
 -              wblock->char_dev.minor = MISC_DYNAMIC_MINOR;
 -              wblock->char_dev.name = buf;
 -              wblock->char_dev.fops = &wmi_fops;
 -              wblock->char_dev.mode = 0444;
 -              ret = misc_register(&wblock->char_dev);
 -              if (ret) {
 -                      dev_warn(dev, "failed to register char dev: %d\n", ret);
 -                      ret = -ENOMEM;
 -                      goto probe_misc_failure;
 +                      return ret;
                }
        }
  
        set_bit(WMI_PROBED, &wblock->flags);
 -      return 0;
  
 -probe_misc_failure:
 -      kfree(buf);
 -probe_string_failure:
 -      kfree(wblock->handler_data);
 -probe_failure:
 -      if (ACPI_FAILURE(wmi_method_enable(wblock, false)))
 -              dev_warn(dev, "failed to disable device\n");
 -      return ret;
 +      return 0;
  }
  
  static void wmi_dev_remove(struct device *dev)
  
        clear_bit(WMI_PROBED, &wblock->flags);
  
 -      if (wdriver->filter_callback) {
 -              misc_deregister(&wblock->char_dev);
 -              kfree(wblock->char_dev.name);
 -              kfree(wblock->handler_data);
 -      }
 -
        if (wdriver->remove)
                wdriver->remove(dev_to_wdev(dev));
  
@@@ -958,6 -1204,7 +959,6 @@@ static int wmi_create_device(struct dev
  
        if (wblock->gblock.flags & ACPI_WMI_METHOD) {
                wblock->dev.dev.type = &wmi_type_method;
 -              mutex_init(&wblock->char_mutex);
                goto out_init;
        }
  
        kfree(info);
  
        get_acpi_method_name(wblock, 'S', method);
 -      result = get_subobj_info(device->handle, method, NULL);
 -
 -      if (result == 0)
 +      if (acpi_has_method(device->handle, method))
                wblock->dev.setable = true;
  
   out_init:
@@@ -1089,6 -1338,9 +1090,6 @@@ static int parse_wdg(struct device *wmi
        total = obj->buffer.length / sizeof(struct guid_block);
  
        for (i = 0; i < total; i++) {
 -              if (debug_dump_wdg)
 -                      wmi_dump_wdg(&gblock[i]);
 -
                if (!gblock[i].instance_count) {
                        dev_info(wmi_bus_dev, FW_INFO "%pUL has zero instances\n", &gblock[i].guid);
                        continue;
  
                list_add_tail(&wblock->list, &wmi_block_list);
  
 -              if (debug_event) {
 -                      wblock->handler = wmi_notify_debug;
 -                      wmi_method_enable(wblock, true);
 -              }
 -
                retval = wmi_add_device(pdev, &wblock->dev);
                if (retval) {
                        dev_err(wmi_bus_dev, "failed to register %pUL\n",
                                &wblock->gblock.guid);
 -                      if (debug_event)
 -                              wmi_method_enable(wblock, false);
  
                        list_del(&wblock->list);
                        put_device(&wblock->dev.dev);
@@@ -1138,7 -1397,7 +1139,7 @@@ acpi_wmi_ec_space_handler(u32 function
                          u32 bits, u64 *value,
                          void *handler_context, void *region_context)
  {
 -      int result = 0, i = 0;
 +      int result = 0;
        u8 temp = 0;
  
        if ((address > 0xFF) || !value)
  
        if (function == ACPI_READ) {
                result = ec_read(address, &temp);
 -              (*value) |= ((u64)temp) << i;
 +              *value = temp;
        } else {
 -              temp = 0xff & ((*value) >> i);
 +              temp = 0xff & *value;
                result = ec_write(address, temp);
        }
  
        }
  }
  
 -static void acpi_wmi_notify_handler(acpi_handle handle, u32 event,
 -                                  void *context)
 +static int wmi_notify_device(struct device *dev, void *data)
  {
 -      struct wmi_block *wblock = NULL, *iter;
 -
 -      list_for_each_entry(iter, &wmi_block_list, list) {
 -              struct guid_block *block = &iter->gblock;
 -
 -              if (iter->acpi_device->handle == handle &&
 -                  (block->flags & ACPI_WMI_EVENT) &&
 -                  (block->notify_id == event)) {
 -                      wblock = iter;
 -                      break;
 -              }
 -      }
 +      struct wmi_block *wblock = dev_to_wblock(dev);
 +      u32 *event = data;
  
 -      if (!wblock)
 -              return;
 +      if (!(wblock->gblock.flags & ACPI_WMI_EVENT && wblock->gblock.notify_id == *event))
 +              return 0;
  
        /* If a driver is bound, then notify the driver. */
        if (test_bit(WMI_PROBED, &wblock->flags) && wblock->dev.dev.driver) {
                        status = get_event_data(wblock, &evdata);
                        if (ACPI_FAILURE(status)) {
                                dev_warn(&wblock->dev.dev, "failed to get event data\n");
 -                              return;
 +                              return -EIO;
                        }
                }
  
                kfree(evdata.pointer);
        } else if (wblock->handler) {
                /* Legacy handler */
 -              wblock->handler(event, wblock->handler_data);
 +              wblock->handler(*event, wblock->handler_data);
        }
  
 -      if (debug_event)
 -              pr_info("DEBUG: GUID %pUL event 0x%02X\n", &wblock->gblock.guid, event);
 +      acpi_bus_generate_netlink_event(wblock->acpi_device->pnp.device_class,
 +                                      dev_name(&wblock->dev.dev), *event, 0);
  
 -      acpi_bus_generate_netlink_event(
 -              wblock->acpi_device->pnp.device_class,
 -              dev_name(&wblock->dev.dev),
 -              event, 0);
 +      return -EBUSY;
 +}
 +
 +static void acpi_wmi_notify_handler(acpi_handle handle, u32 event, void *context)
 +{
 +      struct device *wmi_bus_dev = context;
 +
 +      device_for_each_child(wmi_bus_dev, &event, wmi_notify_device);
  }
  
  static int wmi_remove_device(struct device *dev, void *data)
  
  static void acpi_wmi_remove(struct platform_device *device)
  {
 -      struct acpi_device *acpi_device = ACPI_COMPANION(&device->dev);
        struct device *wmi_bus_device = dev_get_drvdata(&device->dev);
  
 -      acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY,
 -                                 acpi_wmi_notify_handler);
 -      acpi_remove_address_space_handler(acpi_device->handle,
 -                              ACPI_ADR_SPACE_EC, &acpi_wmi_ec_space_handler);
 -
        device_for_each_child_reverse(wmi_bus_device, NULL, wmi_remove_device);
 -      device_unregister(wmi_bus_device);
 +}
 +
 +static void acpi_wmi_remove_notify_handler(void *data)
 +{
 +      struct acpi_device *acpi_device = data;
 +
 +      acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, acpi_wmi_notify_handler);
 +}
 +
 +static void acpi_wmi_remove_address_space_handler(void *data)
 +{
 +      struct acpi_device *acpi_device = data;
 +
 +      acpi_remove_address_space_handler(acpi_device->handle, ACPI_ADR_SPACE_EC,
 +                                        &acpi_wmi_ec_space_handler);
 +}
 +
 +static void acpi_wmi_remove_bus_device(void *data)
 +{
 +      struct device *wmi_bus_dev = data;
 +
 +      device_unregister(wmi_bus_dev);
  }
  
  static int acpi_wmi_probe(struct platform_device *device)
                return -ENODEV;
        }
  
 +      wmi_bus_dev = device_create(&wmi_bus_class, &device->dev, MKDEV(0, 0), NULL, "wmi_bus-%s",
 +                                  dev_name(&device->dev));
 +      if (IS_ERR(wmi_bus_dev))
 +              return PTR_ERR(wmi_bus_dev);
 +
 +      error = devm_add_action_or_reset(&device->dev, acpi_wmi_remove_bus_device, wmi_bus_dev);
 +      if (error < 0)
 +              return error;
 +
 +      dev_set_drvdata(&device->dev, wmi_bus_dev);
 +
        status = acpi_install_address_space_handler(acpi_device->handle,
                                                    ACPI_ADR_SPACE_EC,
                                                    &acpi_wmi_ec_space_handler,
                dev_err(&device->dev, "Error installing EC region handler\n");
                return -ENODEV;
        }
 +      error = devm_add_action_or_reset(&device->dev, acpi_wmi_remove_address_space_handler,
 +                                       acpi_device);
 +      if (error < 0)
 +              return error;
  
 -      status = acpi_install_notify_handler(acpi_device->handle,
 -                                           ACPI_ALL_NOTIFY,
 -                                           acpi_wmi_notify_handler,
 -                                           NULL);
 +      status = acpi_install_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY,
 +                                           acpi_wmi_notify_handler, wmi_bus_dev);
        if (ACPI_FAILURE(status)) {
                dev_err(&device->dev, "Error installing notify handler\n");
 -              error = -ENODEV;
 -              goto err_remove_ec_handler;
 +              return -ENODEV;
        }
 -
 -      wmi_bus_dev = device_create(&wmi_bus_class, &device->dev, MKDEV(0, 0),
 -                                  NULL, "wmi_bus-%s", dev_name(&device->dev));
 -      if (IS_ERR(wmi_bus_dev)) {
 -              error = PTR_ERR(wmi_bus_dev);
 -              goto err_remove_notify_handler;
 -      }
 -      dev_set_drvdata(&device->dev, wmi_bus_dev);
 +      error = devm_add_action_or_reset(&device->dev, acpi_wmi_remove_notify_handler,
 +                                       acpi_device);
 +      if (error < 0)
 +              return error;
  
        error = parse_wdg(wmi_bus_dev, device);
        if (error) {
                pr_err("Failed to parse WDG method\n");
 -              goto err_remove_busdev;
 +              return error;
        }
  
        return 0;
 -
 -err_remove_busdev:
 -      device_unregister(wmi_bus_dev);
 -
 -err_remove_notify_handler:
 -      acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY,
 -                                 acpi_wmi_notify_handler);
 -
 -err_remove_ec_handler:
 -      acpi_remove_address_space_handler(acpi_device->handle,
 -                                        ACPI_ADR_SPACE_EC,
 -                                        &acpi_wmi_ec_space_handler);
 -
 -      return error;
  }
  
  int __must_check __wmi_driver_register(struct wmi_driver *driver,
This page took 0.243697 seconds and 4 git commands to generate.