]> Git Repo - linux.git/commitdiff
Merge tag 'platform-drivers-x86-v5.7-1' of git://git.infradead.org/linux-platform...
authorLinus Torvalds <[email protected]>
Tue, 31 Mar 2020 23:43:40 +0000 (16:43 -0700)
committerLinus Torvalds <[email protected]>
Tue, 31 Mar 2020 23:43:40 +0000 (16:43 -0700)
Pull x86 platform driver updates from Andy Shevchenko:

 - Fix for improper handling of fan_boost_mode in sysfs for ASUS
   laptops.

 - On newer ASUS laptops the 1st battery is named differently, here is a
   fix.

 - Fix Lex 2I385SW to allow both network cards to be used.

 - The power integrated circuit driver for Surface 3 has been added.

 - Refactor and clean up of Intel PMC driver and enable it on Intel
   Jasper Lake.

 - Clean up of Dell RBU driver.

 - Big update for Intel Speed Select technology support tool and driver.

* tag 'platform-drivers-x86-v5.7-1' of git://git.infradead.org/linux-platform-drivers-x86: (75 commits)
  platform/x86: surface3_power: Fix always true condition in mshw0011_space_handler()
  platform/x86: surface3_power: Fix Kconfig section ordering
  platform/x86: surface3_power: Add missed headers
  platform/x86: surface3_power: Reformat GUID assignment
  platform/x86: surface3_power: Drop useless macro ACPI_PTR()
  platform/x86: surface3_power: Prefix POLL_INTERVAL with SURFACE_3
  platform/x86: surface3_power: Simplify mshw0011_adp_psr() to one liner
  platform/x86: surface3_power: Use dev_err() instead of pr_err()
  platform/x86: surface3_power: Drop unused structure definition
  platform/x86: surface3_power: MSHW0011 rev-eng implementation
  platform/x86: intel_pmc_core: Make pmc_core_substate_res_show() generic
  platform/x86: intel_pmc_core: Make pmc_core_lpm_display() generic for platforms that support sub-states
  tools/power/x86/intel-speed-select: Fix a typo in error message
  tools/power/x86/intel-speed-select: Update version
  tools/power/x86/intel-speed-select: Avoid duplicate Package strings for json
  tools/power/x86/intel-speed-select: Add display for enabled cpus count
  tools/power/x86/intel-speed-select: Print friendly warning for bad command line
  tools/power/x86/intel-speed-select: Fix avx options for turbo-freq feature
  tools/power/x86/intel-speed-select: Improve CLX commands
  tools/power/x86/intel-speed-select: Show error for invalid CPUs in the options
  ...

1  2 
MAINTAINERS
drivers/platform/x86/Kconfig
drivers/platform/x86/intel-uncore-frequency.c
drivers/platform/x86/intel_pmc_core.c

diff --combined MAINTAINERS
index 78b53ce0adfb3db82bcf34a0e18aa08a39b25901,4d4e3241bf9985fd0c8d7baf7b568dfbb7a1a20e..1b718c05ad3e34158f58a5f1145c98299ad8c574
@@@ -214,7 -214,7 +214,7 @@@ Q: http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs.git
  T:    git git://github.com/martinetd/linux.git
  S:    Maintained
 -F:    Documentation/filesystems/9p.txt
 +F:    Documentation/filesystems/9p.rst
  F:    fs/9p/
  F:    net/9p/
  F:    include/net/9p/
@@@ -303,8 -303,8 +303,8 @@@ F: drivers/net/ethernet/alteon/acenic
  ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER
  M:    Peter Kaestle <[email protected]>
  L:    [email protected]
- W:    http://piie.net/?section=acerhdf
  S:    Maintained
+ W:    http://piie.net/?section=acerhdf
  F:    drivers/platform/x86/acerhdf.c
  
  ACER WMI LAPTOP EXTRAS
@@@ -584,7 -584,7 +584,7 @@@ AFFS FILE SYSTE
  M:    David Sterba <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
 -F:    Documentation/filesystems/affs.txt
 +F:    Documentation/filesystems/affs.rst
  F:    fs/affs/
  
  AFS FILESYSTEM
  S:    Supported
  F:    fs/afs/
  F:    include/trace/events/afs.h
 -F:    Documentation/filesystems/afs.txt
 +F:    Documentation/filesystems/afs.rst
  W:    https://www.infradead.org/~dhowells/kafs/
  
  AGPGART DRIVER
@@@ -693,7 -693,7 +693,7 @@@ ALLWINNER CPUFREQ DRIVE
  M:    Yangtao Li <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/opp/sun50i-nvmem-cpufreq.txt
 +F:    Documentation/devicetree/bindings/opp/allwinner,sun50i-h6-operating-points.yaml
  F:    drivers/cpufreq/sun50i-cpufreq-nvmem.c
  
  ALLWINNER CRYPTO DRIVERS
@@@ -931,14 -931,6 +931,14 @@@ S:       Supporte
  F:    drivers/iio/adc/ad7124.c
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
  
 +ANALOG DEVICES INC AD7192 DRIVER
 +M:    Alexandru Tachici <[email protected]>
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/iio/adc/ad7192.c
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml
 +
  ANALOG DEVICES INC AD7292 DRIVER
  M:    Marcelo Schmitt <[email protected]>
  L:    [email protected]
@@@ -1089,15 -1081,6 +1089,15 @@@ F:    drivers/iio/adc/ltc249
  X:    drivers/iio/*/adjd*
  F:    drivers/staging/iio/*/ad*
  
 +ANALOG DEVICES INC HMC425A DRIVER
 +M:    Beniamin Bia <[email protected]>
 +M:    Michael Hennerich <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    http://ez.analog.com/community/linux-device-drivers
 +F:    Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
 +F:    drivers/iio/amplifiers/hmc425a.c
 +
  ANALOGBITS PLL LIBRARIES
  M:    Paul Walmsley <[email protected]>
  S:    Supported
@@@ -2293,7 -2276,6 +2293,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    Documentation/devicetree/bindings/i2c/i2c-rk3x.txt
  F:    Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.yaml
 +F:    Documentation/devicetree/bindings/spi/spi-rockchip.yaml
  F:    arch/arm/boot/dts/rk3*
  F:    arch/arm/boot/dts/rv1108*
  F:    arch/arm/mach-rockchip/
@@@ -2766,8 -2748,8 +2766,8 @@@ ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRA
  M:    Corentin Chary <[email protected]>
  L:    [email protected]
  L:    [email protected]
- W:    http://acpi4asus.sf.net
  S:    Maintained
+ W:    http://acpi4asus.sf.net
  F:    drivers/platform/x86/asus*.c
  F:    drivers/platform/x86/eeepc*.c
  
@@@ -2814,11 -2796,11 +2814,11 @@@ F:   drivers/block/aoe
  
  ATHEROS 71XX/9XXX GPIO DRIVER
  M:    Alban Bedel <[email protected]>
 +S:    Maintained
  W:    https://github.com/AlbanBedel/linux
  T:    git git://github.com/AlbanBedel/linux
 -S:    Maintained
 -F:    drivers/gpio/gpio-ath79.c
  F:    Documentation/devicetree/bindings/gpio/gpio-ath79.txt
 +F:    drivers/gpio/gpio-ath79.c
  
  ATHEROS 71XX/9XXX USB PHY DRIVER
  M:    Alban Bedel <[email protected]>
@@@ -2975,14 -2957,6 +2975,14 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/sound/axentia,*
  F:    sound/soc/atmel/tse850-pcm5142.c
  
 +AXI-FAN-CONTROL HARDWARE MONITOR DRIVER
 +M:    Nuno Sá <[email protected]>
 +W:    http://ez.analog.com/community/linux-device-drivers
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/hwmon/axi-fan-control.c
 +F:    Documentation/devicetree/bindings/hwmon/adi,axi-fan-control.yaml
 +
  AXXIA I2C CONTROLLER
  M:    Krzysztof Adamski <[email protected]>
  L:    [email protected]
@@@ -3089,7 -3063,7 +3089,7 @@@ M:      Luis de Bethencourt <[email protected]
  M:    Salah Triki <[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/luisbg/linux-befs.git
 -F:    Documentation/filesystems/befs.txt
 +F:    Documentation/filesystems/befs.rst
  F:    fs/befs/
  
  BFQ I/O SCHEDULER
@@@ -3103,7 -3077,7 +3103,7 @@@ F:      Documentation/block/bfq-iosched.rs
  BFS FILE SYSTEM
  M:    "Tigran A. Aivazian" <[email protected]>
  S:    Maintained
 -F:    Documentation/filesystems/bfs.txt
 +F:    Documentation/filesystems/bfs.rst
  F:    fs/bfs/
  F:    include/uapi/linux/bfs_fs.h
  
@@@ -3448,8 -3422,8 +3448,8 @@@ BROADCOM BRCMSTB GPIO DRIVE
  M:    Gregory Fong <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/gpio/gpio-brcmstb.c
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
 +F:    drivers/gpio/gpio-brcmstb.c
  
  BROADCOM BRCMSTB I2C DRIVER
  M:    Kamal Dasu <[email protected]>
@@@ -3507,8 -3481,8 +3507,8 @@@ BROADCOM KONA GPIO DRIVE
  M:    Ray Jui <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/gpio/gpio-bcm-kona.c
  F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
 +F:    drivers/gpio/gpio-bcm-kona.c
  
  BROADCOM NETXTREME-E ROCE DRIVER
  M:    Selvin Xavier <[email protected]>
@@@ -3623,8 -3597,8 +3623,8 @@@ F:      sound/pci/bt87x.
  
  BT8XXGPIO DRIVER
  M:    Michael Buesch <[email protected]>
 -W:    http://bu3sch.de/btgpio.php
  S:    Maintained
 +W:    http://bu3sch.de/btgpio.php
  F:    drivers/gpio/gpio-bt8xx.c
  
  BTRFS FILE SYSTEM
@@@ -3636,7 -3610,7 +3636,7 @@@ W:      http://btrfs.wiki.kernel.org
  Q:    http://patchwork.kernel.org/project/linux-btrfs/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git
  S:    Maintained
 -F:    Documentation/filesystems/btrfs.txt
 +F:    Documentation/filesystems/btrfs.rst
  F:    fs/btrfs/
  F:    include/linux/btrfs*
  F:    include/uapi/linux/btrfs*
@@@ -3675,7 -3649,6 +3675,7 @@@ F:      sound/pci/oxygen
  
  C-SKY ARCHITECTURE
  M:    Guo Ren <[email protected]>
 +L:    [email protected]
  T:    git https://github.com/c-sky/csky-linux.git
  S:    Supported
  F:    arch/csky/
@@@ -3933,10 -3906,10 +3933,10 @@@ W:   http://ceph.com
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
  T:    git git://github.com/ceph/ceph-client.git
  S:    Supported
 -F:    Documentation/filesystems/ceph.txt
 +F:    Documentation/filesystems/ceph.rst
  F:    fs/ceph/
  
 -CERTIFICATE HANDLING:
 +CERTIFICATE HANDLING
  M:    David Howells <[email protected]>
  M:    David Woodhouse <[email protected]>
  L:    [email protected]
@@@ -3946,6 -3919,11 +3946,6 @@@ F:     certs
  F:    scripts/sign-file.c
  F:    scripts/extract-cert.c
  
 -CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
 -L:    [email protected]
 -S:    Obsolete
 -F:    drivers/staging/wusbcore/
 -
  CFAG12864B LCD DRIVER
  M:    Miguel Ojeda Sandonis <[email protected]>
  S:    Maintained
@@@ -4038,7 -4016,7 +4038,7 @@@ M:      Cheng-Yi Chiang <[email protected]
  S:    Maintained
  R:    Enric Balletbo i Serra <[email protected]>
  R:    Guenter Roeck <[email protected]>
 -F:    Documentation/devicetree/bindings/sound/google,cros-ec-codec.txt
 +F:    Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml
  F:    sound/soc/codecs/cros_ec_codec.*
  
  CIRRUS LOGIC AUDIO CODEC DRIVERS
@@@ -4094,6 -4072,7 +4094,6 @@@ F:      drivers/scsi/snic
  CISCO VIC ETHERNET NIC DRIVER
  M:    Christian Benvenuti <[email protected]>
  M:    Govindarajulu Varadarajan <[email protected]>
 -M:    Parvi Kaustubhi <[email protected]>
  S:    Supported
  F:    drivers/net/ethernet/cisco/enic/
  
@@@ -4139,7 -4118,6 +4139,7 @@@ B:      https://github.com/ClangBuiltLinux/l
  C:    irc://chat.freenode.net/clangbuiltlinux
  S:    Supported
  K:    \b(?i:clang|llvm)\b
 +F:    Documentation/kbuild/llvm.rst
  
  CLEANCACHE API
  M:    Konrad Rzeszutek Wilk <[email protected]>
@@@ -4445,7 -4423,7 +4445,7 @@@ F:      include/linux/cpuidle.
  CRAMFS FILESYSTEM
  M:    Nicolas Pitre <[email protected]>
  S:    Maintained
 -F:    Documentation/filesystems/cramfs.txt
 +F:    Documentation/filesystems/cramfs.rst
  F:    fs/cramfs/
  
  CREATIVE SB0540
@@@ -4496,7 -4474,7 +4496,7 @@@ L:      [email protected]
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
  F:    drivers/media/platform/sunxi/sun6i-csi/
 -F:    Documentation/devicetree/bindings/media/sun6i-csi.txt
 +F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
  
  CW1200 WLAN driver
  M:    Solomon Peachy <[email protected]>
@@@ -4593,7 -4571,7 +4593,7 @@@ F:      drivers/infiniband/hw/cxgb4
  F:    include/uapi/rdma/cxgb4-abi.h
  
  CXGB4VF ETHERNET DRIVER (CXGB4VF)
 -M:    Casey Leedom <leedom@chelsio.com>
 +M:    Vishal Kulkarni <vishal@gmail.com>
  L:    [email protected]
  W:    http://www.chelsio.com
  S:    Supported
@@@ -4745,26 -4723,6 +4745,6 @@@ S:     Maintaine
  F:    drivers/media/platform/sunxi/sun8i-di/
  F:    Documentation/devicetree/bindings/media/allwinner,sun8i-h3-deinterlace.yaml
  
- DELL SMBIOS DRIVER
- M:    Pali Rohár <[email protected]>
- M:    Mario Limonciello <[email protected]>
- L:    [email protected]
- S:    Maintained
- F:    drivers/platform/x86/dell-smbios.*
- DELL SMBIOS SMM DRIVER
- M:    Mario Limonciello <[email protected]>
- L:    [email protected]
- S:    Maintained
- F:    drivers/platform/x86/dell-smbios-smm.c
- DELL SMBIOS WMI DRIVER
- M:    Mario Limonciello <[email protected]>
- L:    [email protected]
- S:    Maintained
- F:    drivers/platform/x86/dell-smbios-wmi.c
- F:    tools/wmi/dell-smbios-example.c
  DEFZA FDDI NETWORK DRIVER
  M:    "Maciej W. Rozycki" <[email protected]>
  S:    Maintained
@@@ -4787,17 -4745,37 +4767,37 @@@ M:   Pali Rohár <[email protected]
  S:    Maintained
  F:    drivers/platform/x86/dell-rbtn.*
  
+ DELL LAPTOP SMM DRIVER
+ M:    Pali Rohár <[email protected]>
+ S:    Maintained
+ F:    drivers/hwmon/dell-smm-hwmon.c
+ F:    include/uapi/linux/i8k.h
  DELL REMOTE BIOS UPDATE DRIVER
  M:    Stuart Hayes <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/x86/dell_rbu.c
  
- DELL LAPTOP SMM DRIVER
+ DELL SMBIOS DRIVER
  M:    Pali Rohár <[email protected]>
+ M:    Mario Limonciello <[email protected]>
+ L:    [email protected]
  S:    Maintained
- F:    drivers/hwmon/dell-smm-hwmon.c
- F:    include/uapi/linux/i8k.h
+ F:    drivers/platform/x86/dell-smbios.*
+ DELL SMBIOS SMM DRIVER
+ M:    Mario Limonciello <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/platform/x86/dell-smbios-smm.c
+ DELL SMBIOS WMI DRIVER
+ M:    Mario Limonciello <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/platform/x86/dell-smbios-wmi.c
+ F:    tools/wmi/dell-smbios-example.c
  
  DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
  M:    Stuart Hayes <[email protected]>
@@@ -4806,17 -4784,17 +4806,17 @@@ S:   Maintaine
  F:    Documentation/driver-api/dcdbas.rst
  F:    drivers/platform/x86/dcdbas.*
  
+ DELL WMI DESCRIPTOR DRIVER
+ M:    Mario Limonciello <[email protected]>
+ S:    Maintained
+ F:    drivers/platform/x86/dell-wmi-descriptor.c
  DELL WMI NOTIFICATIONS DRIVER
  M:    Matthew Garrett <[email protected]>
  M:    Pali Rohár <[email protected]>
  S:    Maintained
  F:    drivers/platform/x86/dell-wmi.c
  
- DELL WMI DESCRIPTOR DRIVER
- M:    Mario Limonciello <[email protected]>
- S:    Maintained
- F:    drivers/platform/x86/dell-wmi-descriptor.c
  DELTA ST MEDIA DRIVER
  M:    Hugues Fruchet <[email protected]>
  L:    [email protected]
@@@ -5223,7 -5201,7 +5223,7 @@@ M:      Greg Kroah-Hartman <gregkh@linuxfoun
  R:    "Rafael J. Wysocki" <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
  S:    Supported
 -F:    Documentation/kobject.txt
 +F:    Documentation/core-api/kobject.rst
  F:    drivers/base/
  F:    fs/debugfs/
  F:    fs/sysfs/
@@@ -5689,7 -5667,7 +5689,7 @@@ L:      [email protected]
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/stm
 -F:    Documentation/devicetree/bindings/display/st,stm32-ltdc.txt
 +F:    Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
  
  DRM DRIVERS FOR TI LCDC
  M:    Jyri Sarha <[email protected]>
@@@ -5954,13 -5932,13 +5954,13 @@@ S:   Maintaine
  F:    drivers/media/dvb-frontends/ec100*
  
  ECRYPT FILE SYSTEM
 -M:    Tyler Hicks <tyhicks@canonical.com>
 +M:    Tyler Hicks <code@tyhicks.com>
  L:    [email protected]
  W:    http://ecryptfs.org
  W:    https://launchpad.net/ecryptfs
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs.git
 -S:    Supported
 -F:    Documentation/filesystems/ecryptfs.txt
 +S:    Odd Fixes
 +F:    Documentation/filesystems/ecryptfs.rst
  F:    fs/ecryptfs/
  
  EDAC-AMD64
@@@ -6020,12 -5998,6 +6020,12 @@@ F:    Documentation/driver-api/edac.rs
  F:    drivers/edac/
  F:    include/linux/edac.h
  
 +EDAC-DMC520
 +M:    Lei Wang <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/edac/dmc520_edac.c
 +
  EDAC-E752X
  M:    Mark Gross <[email protected]>
  L:    [email protected]
@@@ -6225,6 -6197,7 +6225,6 @@@ S:      Supporte
  F:    drivers/scsi/be2iscsi/
  
  Emulex 10Gbps NIC BE2, BE3-R, Lancer, Skyhawk-R DRIVER (be2net)
 -M:    Sathya Perla <[email protected]>
  M:    Ajit Khaparde <[email protected]>
  M:    Sriharsha Basavapatna <[email protected]>
  M:    Somnath Kotur <[email protected]>
@@@ -6276,12 -6249,12 +6276,12 @@@ F:   drivers/video/fbdev/s1d13xxxfb.
  F:    include/video/s1d13xxxfb.h
  
  EROFS FILE SYSTEM
 -M:    Gao Xiang <[email protected]>
 +M:    Gao Xiang <[email protected]>
  M:    Chao Yu <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
 -F:    Documentation/filesystems/erofs.txt
 +F:    Documentation/filesystems/erofs.rst
  F:    fs/erofs/
  F:    include/trace/events/erofs.h
  
@@@ -6332,11 -6305,17 +6332,11 @@@ F:   include/trace/events/mdio.
  F:    include/uapi/linux/mdio.h
  F:    include/uapi/linux/mii.h
  
 -EXFAT FILE SYSTEM
 -M:    Valdis Kletnieks <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/staging/exfat/
 -
  EXT2 FILE SYSTEM
  M:    Jan Kara <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/filesystems/ext2.txt
 +F:    Documentation/filesystems/ext2.rst
  F:    fs/ext2/
  F:    include/linux/ext2*
  
@@@ -6364,6 -6343,7 +6364,6 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    Documentation/admin-guide/efi-stub.rst
  F:    arch/*/kernel/efi.c
 -F:    arch/x86/boot/compressed/eboot.[ch]
  F:    arch/*/include/asm/efi.h
  F:    arch/x86/platform/efi/
  F:    drivers/firmware/efi/
@@@ -6409,7 -6389,7 +6409,7 @@@ L:      [email protected]
  W:    https://f2fs.wiki.kernel.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
  S:    Maintained
 -F:    Documentation/filesystems/f2fs.txt
 +F:    Documentation/filesystems/f2fs.rst
  F:    Documentation/ABI/testing/sysfs-fs-f2fs
  F:    fs/f2fs/
  F:    include/linux/f2fs_fs.h
@@@ -6879,13 -6859,6 +6879,13 @@@ S:    Maintaine
  F:    drivers/i2c/busses/i2c-fsi.c
  F:    Documentation/devicetree/bindings/i2c/i2c-fsi.txt
  
 +FSI-ATTACHED SPI DRIVER
 +M:    Eddie James <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/spi/spi-fsi.c
 +F:    Documentation/devicetree/bindings/fsi/ibm,fsi2spi.yaml
 +
  FSNOTIFY: FILESYSTEM NOTIFICATION INFRASTRUCTURE
  M:    Jan Kara <[email protected]>
  R:    Amir Goldstein <[email protected]>
@@@ -6961,7 -6934,7 +6961,7 @@@ S:      Maintaine
  F:    scripts/gcc-plugins/
  F:    scripts/gcc-plugin.sh
  F:    scripts/Makefile.gcc-plugins
 -F:    Documentation/core-api/gcc-plugins.rst
 +F:    Documentation/kbuild/gcc-plugins.rst
  
  GASKET DRIVER FRAMEWORK
  M:    Rob Springer <[email protected]>
@@@ -7074,7 -7047,7 +7074,7 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/uio/uio_pci_generic.c
  
 -GENERIC VDSO LIBRARY:
 +GENERIC VDSO LIBRARY
  M:    Andy Lutomirski <[email protected]>
  M:    Thomas Gleixner <[email protected]>
  M:    Vincenzo Frascino <[email protected]>
@@@ -7170,18 -7143,18 +7170,18 @@@ GPIO SUBSYSTE
  M:    Linus Walleij <[email protected]>
  M:    Bartosz Golaszewski <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.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/
 -F:    Documentation/admin-guide/gpio/
 -F:    Documentation/ABI/testing/gpio-cdev
 -F:    Documentation/ABI/obsolete/sysfs-gpio
  F:    drivers/gpio/
 +F:    include/asm-generic/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/gpio.h
  F:    include/linux/of_gpio.h
 -F:    include/asm-generic/gpio.h
  F:    include/uapi/linux/gpio.h
  F:    tools/gpio/
  
@@@ -7375,8 -7348,8 +7375,8 @@@ F:      drivers/media/usb/hackrf
  HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
  M:    Frank Seidel <[email protected]>
  L:    [email protected]
- W:    http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/
  S:    Maintained
+ W:    http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/
  F:    drivers/platform/x86/hdaps.c
  
  HARDWARE MONITORING
@@@ -7458,13 -7431,13 +7458,13 @@@ F:   drivers/infiniband/hw/hfi
  HFS FILESYSTEM
  L:    [email protected]
  S:    Orphan
 -F:    Documentation/filesystems/hfs.txt
 +F:    Documentation/filesystems/hfs.rst
  F:    fs/hfs/
  
  HFSPLUS FILESYSTEM
  L:    [email protected]
  S:    Orphan
 -F:    Documentation/filesystems/hfsplus.txt
 +F:    Documentation/filesystems/hfsplus.rst
  F:    fs/hfsplus/
  
  HGA FRAMEBUFFER DRIVER
@@@ -7544,12 -7517,6 +7544,12 @@@ F:    include/uapi/linux/if_hippi.
  F:    net/802/hippi.c
  F:    drivers/net/hippi/
  
 +HISILICON DMA DRIVER
 +M:    Zhou Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/dma/hisi_dma.c
 +
  HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
  M:    Zaibo Xu <[email protected]>
  L:    [email protected]
@@@ -7607,8 -7574,7 +7607,8 @@@ F:      Documentation/admin-guide/perf/hisi-
  
  HISILICON ROCE DRIVER
  M:    Lijun Ou <[email protected]>
 -M:    Wei Hu(Xavier) <[email protected]>
 +M:    Wei Hu(Xavier) <[email protected]>
 +M:    Weihang Li <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/infiniband/hw/hns/
@@@ -7771,7 -7737,7 +7771,7 @@@ Hyper-V CORE AND DRIVER
  M:    "K. Y. Srinivasan" <[email protected]>
  M:    Haiyang Zhang <[email protected]>
  M:    Stephen Hemminger <[email protected]>
 -M:    Sasha Levin <sashal@kernel.org>
 +M:    Wei Liu <wei.liu@kernel.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
  L:    [email protected]
  S:    Supported
@@@ -7979,7 -7945,6 +7979,7 @@@ L:      [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
  S:    Maintained
  F:    arch/ia64/
 +F:    Documentation/ia64/
  
  IBM Power 842 compression accelerator
  M:    Haren Myneni <[email protected]>
@@@ -8090,8 -8055,8 +8090,8 @@@ F:      drivers/scsi/ips.
  ICH LPC AND GPIO DRIVER
  M:    Peter Tyser <[email protected]>
  S:    Maintained
 -F:    drivers/mfd/lpc_ich.c
  F:    drivers/gpio/gpio-ich.c
 +F:    drivers/mfd/lpc_ich.c
  
  ICY I2C DRIVER
  M:    Max Staudt <[email protected]>
@@@ -8119,15 -8084,15 +8119,15 @@@ F:   drivers/ide/ide-cd
  IDEAPAD LAPTOP EXTRAS DRIVER
  M:    Ike Panhc <[email protected]>
  L:    [email protected]
- W:    http://launchpad.net/ideapad-laptop
  S:    Maintained
+ W:    http://launchpad.net/ideapad-laptop
  F:    drivers/platform/x86/ideapad-laptop.c
  
  IDEAPAD LAPTOP SLIDEBAR DRIVER
  M:    Andrey Moiseev <[email protected]>
  L:    [email protected]
- W:    https://github.com/o2genum/ideapad-slidebar
  S:    Maintained
+ W:    https://github.com/o2genum/ideapad-slidebar
  F:    drivers/input/misc/ideapad_slidebar.c
  
  IDT VersaClock 5 CLOCK DRIVER
@@@ -8343,7 -8308,7 +8343,7 @@@ M:      Jan Kara <[email protected]
  R:    Amir Goldstein <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/filesystems/inotify.txt
 +F:    Documentation/filesystems/inotify.rst
  F:    fs/notify/inotify/
  F:    include/linux/inotify.h
  F:    include/uapi/linux/inotify.h
@@@ -8427,7 -8392,7 +8427,7 @@@ M:      Joonas Lahtinen <joonas.lahtinen@lin
  M:    Rodrigo Vivi <[email protected]>
  L:    [email protected]
  W:    https://01.org/linuxgraphics/
 -B:    https://01.org/linuxgraphics/documentation/how-report-bugs
 +B:    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
  C:    irc://chat.freenode.net/intel-gfx
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  T:    git git://anongit.freedesktop.org/drm-intel
@@@ -8512,6 -8477,7 +8512,6 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/dma/idxd/*
  F:    include/uapi/linux/idxd.h
 -F:    include/linux/idxd.h
  
  INTEL IDLE DRIVER
  M:    Jacob Pan <[email protected]>
@@@ -8593,8 -8559,8 +8593,8 @@@ F:      samples/mei/
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <[email protected]>
  L:    [email protected]
- W:    https://01.org/linux-acpi
  S:    Supported
+ W:    https://01.org/linux-acpi
  F:    drivers/platform/x86/intel_menlow.c
  
  INTEL MIC DRIVERS (mic)
@@@ -8603,15 -8569,15 +8603,15 @@@ M:   Ashutosh Dixit <ashutosh.dixit@intel
  S:    Supported
  W:    https://github.com/sudeepdutt/mic
  W:    http://software.intel.com/en-us/mic-developer
 +F:    Documentation/misc-devices/mic/
 +F:    drivers/dma/mic_x100_dma.c
 +F:    drivers/dma/mic_x100_dma.h
 +F:    drivers/misc/mic/
  F:    include/linux/mic_bus.h
  F:    include/linux/scif.h
  F:    include/uapi/linux/mic_common.h
  F:    include/uapi/linux/mic_ioctl.h
  F:    include/uapi/linux/scif_ioctl.h
 -F:    drivers/misc/mic/
 -F:    drivers/dma/mic_x100_dma.c
 -F:    drivers/dma/mic_x100_dma.h
 -F:    Documentation/mic/
  
  INTEL PMC CORE DRIVER
  M:    Rajneesh Bhardwaj <[email protected]>
@@@ -8624,10 -8590,10 +8624,10 @@@ INTEL PMC/P-Unit IPC DRIVE
  M:    Zha Qipeng<[email protected]>
  L:    [email protected]
  S:    Maintained
- F:    drivers/platform/x86/intel_pmc_ipc.c
- F:    drivers/platform/x86/intel_punit_ipc.c
  F:    arch/x86/include/asm/intel_pmc_ipc.h
  F:    arch/x86/include/asm/intel_punit_ipc.h
+ F:    drivers/platform/x86/intel_pmc_ipc.c
+ F:    drivers/platform/x86/intel_punit_ipc.c
  
  INTEL PMIC GPIO DRIVERS
  M:    Andy Shevchenko <[email protected]>
@@@ -8672,8 -8638,8 +8672,8 @@@ M:      Srinivas Pandruvada <srinivas.pandru
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/x86/intel_speed_select_if/
- F:    tools/power/x86/intel-speed-select/
  F:    include/uapi/linux/isst_if.h
+ F:    tools/power/x86/intel-speed-select/
  
  INTEL STRATIX10 FIRMWARE DRIVERS
  M:    Richard Gong <[email protected]>
@@@ -8718,7 -8684,7 +8718,7 @@@ M:      Emmanuel Grumbach <emmanuel.grumbach
  M:    Luca Coelho <[email protected]>
  M:    Intel Linux Wireless <[email protected]>
  L:    [email protected]
 -W:    http://intellinuxwireless.org
 +W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git
  S:    Supported
  F:    drivers/net/wireless/intel/iwlwifi/
  S:    Supported
  F:    Documentation/security/keys/trusted-encrypted.rst
  F:    include/keys/trusted-type.h
 -F:    security/keys/trusted.c
 -F:    include/keys/trusted.h
 +F:    include/keys/trusted_tpm.h
 +F:    security/keys/trusted-keys/
  
 -KEYS/KEYRINGS:
 +KEYS/KEYRINGS
  M:    David Howells <[email protected]>
  M:    Jarkko Sakkinen <[email protected]>
  L:    [email protected]
@@@ -10197,7 -10163,7 +10197,7 @@@ MAXBOTIX ULTRASONIC RANGER IIO DRIVE
  M:    Andreas Klinger <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.txt
 +F:    Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.yaml
  F:    drivers/iio/proximity/mb1232.c
  
  MAXIM MAX77650 PMIC MFD DRIVER
@@@ -10500,7 -10466,7 +10500,7 @@@ M:   Hugues Fruchet <[email protected]
  L:    [email protected]
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
 -F:    Documentation/devicetree/bindings/media/st,stm32-dcmi.txt
 +F:    Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml
  F:    drivers/media/platform/stm32/stm32-dcmi.c
  
  MEDIA DRIVERS FOR NVIDIA TEGRA - VDE
@@@ -10978,7 -10944,6 +10978,7 @@@ F:   drivers/media/platform/atmel/atmel-i
  F:    drivers/media/platform/atmel/atmel-isc-base.c
  F:    drivers/media/platform/atmel/atmel-isc-regs.h
  F:    Documentation/devicetree/bindings/media/atmel-isc.txt
 +F:    include/linux/atmel-isc-media.h
  
  MICROCHIP ISI DRIVER
  M:    Eugen Hristev <[email protected]>
@@@ -11149,12 -11114,14 +11149,12 @@@ S:        Maintaine
  F:    drivers/usb/image/microtek.*
  
  MIPS
 -M:    Ralf Baechle <[email protected]>
 -M:    Paul Burton <[email protected]>
 +M:    Thomas Bogendoerfer <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mips.org/
 -T:    git git://git.linux-mips.org/pub/scm/ralf/linux.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
 -Q:    http://patchwork.linux-mips.org/project/linux-mips/list/
 -S:    Supported
 +Q:    https://patchwork.kernel.org/project/linux-mips/list/
 +S:    Maintained
  F:    Documentation/devicetree/bindings/mips/
  F:    Documentation/mips/
  F:    arch/mips/
@@@ -11204,7 -11171,6 +11204,7 @@@ S:   Maintaine
  F:    arch/mips/loongson64/
  F:    arch/mips/include/asm/mach-loongson64/
  F:    drivers/platform/mips/cpu_hwmon.c
 +F:    drivers/irqchip/irq-loongson*
  F:    drivers/*/*loongson3*
  F:    drivers/*/*/*loongson3*
  
@@@ -11293,8 -11259,7 +11293,8 @@@ F:   drivers/tty/mxser.
  MONOLITHIC POWER SYSTEM PMIC DRIVER
  M:    Saravanan Sekar <[email protected]>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/regulator/mpq7920.yaml
 +F:    Documentation/devicetree/bindings/regulator/mps,mp*.yaml
 +F:    drivers/regulator/mp5416.c
  F:    drivers/regulator/mpq7920.c
  F:    drivers/regulator/mpq7920.h
  
@@@ -11519,7 -11484,7 +11519,7 @@@ F:   drivers/scsi/mac_scsi.
  F:    drivers/scsi/sun3_scsi.*
  F:    drivers/scsi/sun3_scsi_vme.c
  
 -NCSI LIBRARY:
 +NCSI LIBRARY
  M:    Samuel Mendoza-Jonas <[email protected]>
  S:    Maintained
  F:    net/ncsi/
@@@ -11826,7 -11791,7 +11826,7 @@@ W:   https://nilfs.sourceforge.io
  W:    https://nilfs.osdn.jp/
  T:    git git://github.com/konis/nilfs2.git
  S:    Supported
 -F:    Documentation/filesystems/nilfs2.txt
 +F:    Documentation/filesystems/nilfs2.rst
  F:    fs/nilfs2/
  F:    include/trace/events/nilfs2.h
  F:    include/uapi/linux/nilfs2_api.h
  W:    http://www.tuxera.com/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs.git
  S:    Supported
 -F:    Documentation/filesystems/ntfs.txt
 +F:    Documentation/filesystems/ntfs.rst
  F:    fs/ntfs/
  
  NUBUS SUBSYSTEM
@@@ -12281,7 -12246,7 +12281,7 @@@ OMFS FILESYSTE
  M:    Bob Copeland <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/filesystems/omfs.txt
 +F:    Documentation/filesystems/omfs.rst
  F:    fs/omfs/
  
  OMNIKEY CARDMAN 4000 DRIVER
@@@ -12530,8 -12495,8 +12530,8 @@@ M:   Joseph Qi <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  W:    http://ocfs2.wiki.kernel.org
  S:    Supported
 -F:    Documentation/filesystems/ocfs2.txt
 -F:    Documentation/filesystems/dlmfs.txt
 +F:    Documentation/filesystems/ocfs2.rst
 +F:    Documentation/filesystems/dlmfs.rst
  F:    fs/ocfs2/
  
  ORANGEFS FILESYSTEM
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux.git
  S:    Supported
  F:    fs/orangefs/
 -F:    Documentation/filesystems/orangefs.txt
 +F:    Documentation/filesystems/orangefs.rst
  
  ORINOCO DRIVER
  L:    [email protected]
@@@ -12775,7 -12740,7 +12775,7 @@@ M:   Tom Joseph <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/cdns,*.txt
 -F:    drivers/pci/controller/pcie-cadence*
 +F:    drivers/pci/controller/cadence/
  
  PCI DRIVER FOR FREESCALE LAYERSCAPE
  M:    Minghuan Lian <[email protected]>
@@@ -12988,6 -12953,7 +12988,6 @@@ M:   Robert Richter <[email protected]
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
 -F:    Documentation/devicetree/bindings/pci/pci-thunder-*
  F:    drivers/pci/controller/pci-thunder-*
  
  PCIE DRIVER FOR HISILICON
@@@ -13383,9 -13349,7 +13383,9 @@@ F:   Documentation/devicetree/bindings/ii
  
  PNP SUPPORT
  M:    "Rafael J. Wysocki" <[email protected]>
 +L:    [email protected]
  S:    Maintained
 +F:    include/linux/pnp.h
  F:    drivers/pnp/
  
  POSIX CLOCKS and TIMERS
@@@ -13505,7 -13469,7 +13505,7 @@@ S:   Maintaine
  F:    fs/proc/
  F:    include/linux/proc_fs.h
  F:    tools/testing/selftests/proc/
 -F:    Documentation/filesystems/proc.txt
 +F:    Documentation/filesystems/proc.rst
  
  PROC SYSCTL
  M:    Luis Chamberlain <[email protected]>
@@@ -13548,19 -13512,13 +13548,19 @@@ L:        [email protected]
  S:    Maintained
  F:    drivers/block/ps3vram.c
  
 -PSAMPLE PACKET SAMPLING SUPPORT:
 +PSAMPLE PACKET SAMPLING SUPPORT
  M:    Yotam Gigi <[email protected]>
  S:    Maintained
  F:    net/psample
  F:    include/net/psample.h
  F:    include/uapi/linux/psample.h
  
 +PRESSURE STALL INFORMATION (PSI)
 +M:    Johannes Weiner <[email protected]>
 +S:    Maintained
 +F:    kernel/sched/psi.c
 +F:    include/linux/psi*
 +
  PSTORE FILESYSTEM
  M:    Kees Cook <[email protected]>
  M:    Anton Vorontsov <[email protected]>
  T:    git git://linuxtv.org/media_tree.git
  S:    Maintained
  F:    drivers/media/platform/qcom/venus/
 +F:    Documentation/devicetree/bindings/media/*venus*
  
  QUALCOMM WCN36XX WIRELESS DRIVER
  M:    Kalle Valo <[email protected]>
@@@ -14271,7 -14228,7 +14271,7 @@@ F:   include/dt-bindings/reset
  F:    include/linux/reset.h
  F:    include/linux/reset/
  F:    include/linux/reset-controller.h
 -K:      \b(?:devm_|of_)?reset_control(?:ler_[a-z]+|_[a-z_]+)?\b
 +K:    \b(?:devm_|of_)?reset_control(?:ler_[a-z]+|_[a-z_]+)?\b
  
  RESTARTABLE SEQUENCES SUPPORT
  M:    Mathieu Desnoyers <[email protected]>
@@@ -14355,12 -14312,9 +14355,12 @@@ F: Documentation/devicetree/bindings/me
  
  HANTRO VPU CODEC DRIVER
  M:    Ezequiel Garcia <[email protected]>
 +M:    Philipp Zabel <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    drivers/staging/media/hantro/
 +F:    Documentation/devicetree/bindings/media/nxp,imx8mq-vpu.yaml
  F:    Documentation/devicetree/bindings/media/rockchip-vpu.txt
  
  ROCKER DRIVER
@@@ -14407,14 -14361,6 +14407,14 @@@ F: include/net/rose.
  F:    include/uapi/linux/rose.h
  F:    net/rose/
  
 +ROTATION DRIVER FOR ALLWINNER A83T
 +M:    Jernej Skrabec <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/platform/sunxi/sun8i-rotate/
 +F:    Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
 +
  RTL2830 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
  L:    [email protected]
@@@ -14636,10 -14582,10 +14636,10 @@@ F:        drivers/media/pci/saa7146
  F:    include/media/drv-intf/saa7146*
  
  SAFESETID SECURITY MODULE
 -M:     Micah Morton <[email protected]>
 -S:     Supported
 -F:     security/safesetid/
 -F:     Documentation/admin-guide/LSM/SafeSetID.rst
 +M:    Micah Morton <[email protected]>
 +S:    Supported
 +F:    security/safesetid/
 +F:    Documentation/admin-guide/LSM/SafeSetID.rst
  
  SAMSUNG AUDIO (ASoC) DRIVERS
  M:    Krzysztof Kozlowski <[email protected]>
@@@ -15028,7 -14974,7 +15028,7 @@@ X:   security/selinux
  
  SELINUX SECURITY MODULE
  M:    Paul Moore <[email protected]>
 -M:    Stephen Smalley <s[email protected]>
 +M:    Stephen Smalley <s[email protected]>
  M:    Eric Paris <[email protected]>
  L:    [email protected]
  W:    https://selinuxproject.org
@@@ -15040,7 -14986,6 +15040,7 @@@ F:   security/selinux
  F:    scripts/selinux/
  F:    Documentation/admin-guide/LSM/SELinux.rst
  F:    Documentation/ABI/obsolete/sysfs-selinux-disable
 +F:    Documentation/ABI/obsolete/sysfs-selinux-checkreqprot
  
  SENSABLE PHANTOM
  M:    Jiri Slaby <[email protected]>
@@@ -15098,6 -15043,14 +15098,6 @@@ M:  Dimitri Sivanich <[email protected]
  S:    Maintained
  F:    drivers/misc/sgi-gru/
  
 -SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER
 -M:    Pat Gefre <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    Documentation/ia64/serial.rst
 -F:    drivers/tty/serial/ioc?_serial.c
 -F:    include/linux/ioc?.h
 -
  SGI XP/XPC/XPNET DRIVER
  M:    Cliff Whickman <[email protected]>
  M:    Robin Holt <[email protected]>
@@@ -15112,14 -15065,6 +15112,14 @@@ W: http://www.ibm.com/developerworks/li
  S:    Supported
  F:    net/smc/
  
 +SHARP GP2AP002A00F/GP2AP002S00F SENSOR DRIVER
 +M:    Linus Walleij <[email protected]>
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
 +S:    Maintained
 +F:    drivers/iio/light/gp2ap002.c
 +F:    Documentation/devicetree/bindings/iio/light/sharp,gp2ap002.yaml
 +
  SHARP RJ54N1CB0C SENSOR DRIVER
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
@@@ -15386,10 -15331,11 +15386,10 @@@ S:        Odd Fixe
  F:    drivers/net/ethernet/smsc/smc91x.*
  
  SMIA AND SMIA++ IMAGE SENSOR DRIVER
 -M:    Sakari Ailus <sakari.ailus@iki.fi>
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/i2c/smiapp/
 -F:    include/media/i2c/smiapp.h
  F:    drivers/media/i2c/smiapp-pll.c
  F:    drivers/media/i2c/smiapp-pll.h
  F:    include/uapi/linux/smiapp.h
@@@ -15474,9 -15420,11 +15474,9 @@@ F:  drivers/infiniband/sw/siw
  F:    include/uapi/rdma/siw-abi.h
  
  SOFT-ROCE DRIVER (rxe)
 -M:    Moni Shoua <monis@mellanox.com>
 +M:    Zhu Yanjun <yanjunz@mellanox.com>
  L:    [email protected]
  S:    Supported
 -W:    https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home
 -Q:    http://patchwork.kernel.org/project/linux-rdma/list/
  F:    drivers/infiniband/sw/rxe/
  F:    include/uapi/rdma/rdma_user_rxe.h
  
@@@ -15568,14 -15516,6 +15568,14 @@@ S: Maintaine
  F:    drivers/media/i2c/imx214.c
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
  
 +SONY IMX219 SENSOR DRIVER
 +M:    Dave Stevenson <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/imx219.c
 +F:    Documentation/devicetree/bindings/media/i2c/imx219.yaml
 +
  SONY IMX258 SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -15626,8 -15566,8 +15626,8 @@@ F:   include/linux/memstick.
  SONY VAIO CONTROL DEVICE DRIVER
  M:    Mattia Dongili <[email protected]>
  L:    [email protected]
- W:    http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
  S:    Maintained
+ W:    http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
  F:    Documentation/admin-guide/laptops/sony-laptop.rst
  F:    drivers/char/sonypi.c
  F:    drivers/platform/x86/sony-laptop.c
  W:    http://squashfs.org.uk
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next.git
  S:    Maintained
 -F:    Documentation/filesystems/squashfs.txt
 +F:    Documentation/filesystems/squashfs.rst
  F:    fs/squashfs/
  
  SRM (Alpha) environment access
@@@ -15983,7 -15923,7 +15983,7 @@@ F:   drivers/*/stm32-*timer
  F:    drivers/pwm/pwm-stm32*
  F:    include/linux/*/stm32-*tim*
  F:    Documentation/ABI/testing/*timer-stm32
 -F:    Documentation/devicetree/bindings/*/stm32-*timer*
 +F:    Documentation/devicetree/bindings/*/*stm32-*timer*
  F:    Documentation/devicetree/bindings/pwm/pwm-stm32*
  
  STMMAC ETHERNET DRIVER
@@@ -16135,22 -16075,20 +16135,22 @@@ F:        Documentation/devicetree/bindings/re
  SYNOPSYS CREG GPIO DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Maintained
 -F:    drivers/gpio/gpio-creg-snps.c
  F:    Documentation/devicetree/bindings/gpio/snps,creg-gpio.txt
 +F:    drivers/gpio/gpio-creg-snps.c
  
  SYNOPSYS DESIGNWARE 8250 UART DRIVER
  R:    Andy Shevchenko <[email protected]>
  S:    Maintained
  F:    drivers/tty/serial/8250/8250_dw.c
 +F:    drivers/tty/serial/8250/8250_dwlib.*
 +F:    drivers/tty/serial/8250/8250_lpss.c
  
  SYNOPSYS DESIGNWARE APB GPIO DRIVER
  M:    Hoan Tran <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/gpio/gpio-dwapb.c
  F:    Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
 +F:    drivers/gpio/gpio-dwapb.c
  
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <[email protected]>
@@@ -16243,7 -16181,7 +16243,7 @@@ F:   drivers/platform/x86/system76_acpi.
  SYSV FILESYSTEM
  M:    Christoph Hellwig <[email protected]>
  S:    Maintained
 -F:    Documentation/filesystems/sysv-fs.txt
 +F:    Documentation/filesystems/sysv-fs.rst
  F:    fs/sysv/
  F:    include/linux/sysv_fs.h
  
@@@ -16602,10 -16540,10 +16602,10 @@@ THINKPAD ACPI EXTRAS DRIVE
  M:    Henrique de Moraes Holschuh <[email protected]>
  L:    [email protected]
  L:    [email protected]
+ S:    Maintained
  W:    http://ibm-acpi.sourceforge.net
  W:    http://thinkwiki.org/wiki/Ibm-acpi
  T:    git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
- S:    Maintained
  F:    drivers/platform/x86/thinkpad_acpi.c
  
  THUNDERBOLT DRIVER
@@@ -16614,8 -16552,8 +16614,8 @@@ M:   Michael Jamet <[email protected]
  M:    Mika Westerberg <[email protected]>
  M:    Yehezkel Bernat <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git
  F:    Documentation/admin-guide/thunderbolt.rst
  F:    drivers/thunderbolt/
  F:    include/linux/thunderbolt.h
@@@ -16809,12 -16747,12 +16809,12 @@@ F:        sound/soc/codecs/twl4030
  TI VPE/CAL DRIVERS
  M:    Benoit Parrot <[email protected]>
  L:    [email protected]
 +S:    Maintained
  W:    http://linuxtv.org/
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -S:    Maintained
 -F:    drivers/media/platform/ti-vpe/
 +F:    Documentation/devicetree/bindings/media/ti,cal.yaml
  F:    Documentation/devicetree/bindings/media/ti,vpe.yaml
 -      Documentation/devicetree/bindings/media/ti,cal.yaml
 +F:    drivers/media/platform/ti-vpe/
  
  TI WILINK WIRELESS DRIVERS
  L:    [email protected]
@@@ -17108,7 -17046,7 +17108,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git fixes
  W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
  S:    Supported
 -F:    Documentation/filesystems/ubifs.txt
 +F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
  
  UCLINUX (M68KNOMMU AND COLDFIRE)
@@@ -17127,7 -17065,7 +17127,7 @@@ F:   arch/m68k/include/asm/*_no.
  UDF FILESYSTEM
  M:    Jan Kara <[email protected]>
  S:    Maintained
 -F:    Documentation/filesystems/udf.txt
 +F:    Documentation/filesystems/udf.rst
  F:    fs/udf/
  
  UDRAW TABLET
@@@ -17142,7 -17080,7 +17142,7 @@@ S:   Maintaine
  F:    Documentation/admin-guide/ufs.rst
  F:    fs/ufs/
  
 -UHID USERSPACE HID IO DRIVER:
 +UHID USERSPACE HID IO DRIVER
  M:    David Herrmann <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -17156,13 -17094,18 +17156,13 @@@ S:        Maintaine
  F:    drivers/usb/common/ulpi.c
  F:    include/linux/ulpi/
  
 -ULTRA-WIDEBAND (UWB) SUBSYSTEM:
 -L:    [email protected]
 -S:    Obsolete
 -F:    drivers/staging/uwb/
 -
 -UNICODE SUBSYSTEM:
 +UNICODE SUBSYSTEM
  M:    Gabriel Krisman Bertazi <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    fs/unicode/
  
 -UNICORE32 ARCHITECTURE:
 +UNICORE32 ARCHITECTURE
  M:    Guan Xuetao <[email protected]>
  W:    http://mprc.pku.edu.cn/~guanxuetao/linux
  S:    Maintained
@@@ -17239,12 -17182,6 +17239,12 @@@ S: Maintaine
  F:    Documentation/usb/acm.rst
  F:    drivers/usb/class/cdc-acm.*
  
 +USB APPLE MFI FASTCHARGE DRIVER
 +M:    Bastien Nocera <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/usb/misc/apple-mfi-fastcharge.c
 +
  USB AR5523 WIRELESS DRIVER
  M:    Pontus Fuchs <[email protected]>
  L:    [email protected]
@@@ -17455,14 -17392,11 +17455,14 @@@ F:        drivers/usb
  F:    include/linux/usb.h
  F:    include/linux/usb/
  
 -USB TYPEC PI3USB30532 MUX DRIVER
 -M:    Hans de Goede <hdegoede@redhat.com>
 +USB TYPEC BUS FOR ALTERNATE MODES
 +M:    Heikki Krogerus <[email protected].com>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/usb/typec/mux/pi3usb30532.c
 +F:    Documentation/ABI/testing/sysfs-bus-typec
 +F:    Documentation/driver-api/usb/typec_bus.rst
 +F:    drivers/usb/typec/altmodes/
 +F:    include/linux/usb/typec_altmode.h
  
  USB TYPEC CLASS
  M:    Heikki Krogerus <[email protected]>
@@@ -17473,11 -17407,14 +17473,11 @@@ F:        Documentation/driver-api/usb/typec.r
  F:    drivers/usb/typec/
  F:    include/linux/usb/typec.h
  
 -USB TYPEC BUS FOR ALTERNATE MODES
 -M:    Heikki Krogerus <[email protected].com>
 +USB TYPEC PI3USB30532 MUX DRIVER
 +M:    Hans de Goede <hdegoede@redhat.com>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-typec
 -F:    Documentation/driver-api/usb/typec_bus.rst
 -F:    drivers/usb/typec/altmodes/
 -F:    include/linux/usb/typec_altmode.h
 +F:    drivers/usb/typec/mux/pi3usb30532.c
  
  USB TYPEC PORT CONTROLLER DRIVERS
  M:    Guenter Roeck <[email protected]>
  T:    git git://linuxtv.org/media_tree.git
  W:    https://linuxtv.org
  S:    Odd Fixes
 -F:    drivers/media/usb/usbvision/
 +F:    drivers/staging/media/usbvision/
  
  USB WEBCAM GADGET
  M:    Laurent Pinchart <[email protected]>
@@@ -17854,7 -17791,7 +17854,7 @@@ F:   include/linux/vbox_utils.
  F:    include/uapi/linux/vbox*.h
  F:    drivers/virt/vboxguest/
  
 -VIRTUAL BOX SHARED FOLDER VFS DRIVER:
 +VIRTUAL BOX SHARED FOLDER VFS DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -18250,10 -18187,10 +18250,10 @@@ X86 PLATFORM DRIVER
  M:    Darren Hart <[email protected]>
  M:    Andy Shevchenko <[email protected]>
  L:    [email protected]
- T:    git git://git.infradead.org/linux-platform-drivers-x86.git
  S:    Odd Fixes
- F:    drivers/platform/x86/
+ T:    git git://git.infradead.org/linux-platform-drivers-x86.git
  F:    drivers/platform/olpc/
+ F:    drivers/platform/x86/
  
  X86 PLATFORM DRIVERS - ARCH
  R:    Darren Hart <[email protected]>
@@@ -18477,8 -18414,8 +18477,8 @@@ M:   Nandor Han <[email protected]
  M:    Semi Malinen <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/gpio/gpio-xra1403.c
  F:    Documentation/devicetree/bindings/gpio/gpio-xra1403.txt
 +F:    drivers/gpio/gpio-xra1403.c
  
  XTENSA XTFPGA PLATFORM SUPPORT
  M:    Max Filippov <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs.git
  S:    Maintained
  F:    fs/zonefs/
 -F:    Documentation/filesystems/zonefs.txt
 +F:    Documentation/filesystems/zonefs.rst
  
  ZPOOL COMPRESSED PAGE STORAGE API
  M:    Dan Streetman <[email protected]>
index cd9e2758c479b6e1c05cbfeeaf3dedd3c610300a,c304c069df79aeed1efa0653474f02a06c89eb0a..0ad7ad8cf8e17386df81f0f6f7c30a8d2fcb52f0
@@@ -16,40 -16,103 +16,103 @@@ menuconfig X86_PLATFORM_DEVICE
  
  if X86_PLATFORM_DEVICES
  
- config ACER_WMI
-       tristate "Acer WMI Laptop Extras"
+ config ACPI_WMI
+       tristate "WMI"
+       depends on ACPI
+       help
+         This driver adds support for the ACPI-WMI (Windows Management
+         Instrumentation) mapper device (PNP0C14) found on some systems.
+         ACPI-WMI is a proprietary extension to ACPI to expose parts of the
+         ACPI firmware to userspace - this is done through various vendor
+         defined methods and data blocks in a PNP0C14 device, which are then
+         made available for userspace to call.
+         The implementation of this in Linux currently only exposes this to
+         other kernel space drivers.
+         This driver is a required dependency to build the firmware specific
+         drivers needed on many machines, including Acer and HP laptops.
+         It is safe to enable this driver even if your DSDT doesn't define
+         any ACPI-WMI devices.
+ config WMI_BMOF
+       tristate "WMI embedded Binary MOF driver"
+       depends on ACPI_WMI
+       default ACPI_WMI
+       ---help---
+         Say Y here if you want to be able to read a firmware-embedded
+         WMI Binary MOF data. Using this requires userspace tools and may be
+         rather tedious.
+         To compile this driver as a module, choose M here: the module will
+         be called wmi-bmof.
+ config ALIENWARE_WMI
+       tristate "Alienware Special feature control"
        depends on ACPI
+       depends on LEDS_CLASS
+       depends on NEW_LEDS
+       depends on ACPI_WMI
+       ---help---
+        This is a driver for controlling Alienware BIOS driven
+        features.  It exposes an interface for controlling the AlienFX
+        zones on Alienware machines that don't contain a dedicated AlienFX
+        USB MCU such as the X51 and X51-R2.
+ config HUAWEI_WMI
+       tristate "Huawei WMI laptop extras driver"
+       depends on ACPI_BATTERY
+       depends on ACPI_WMI
+       depends on INPUT
+       select INPUT_SPARSEKMAP
        select LEDS_CLASS
+       select LEDS_TRIGGERS
+       select LEDS_TRIGGER_AUDIO
        select NEW_LEDS
-       depends on BACKLIGHT_CLASS_DEVICE
-       depends on SERIO_I8042
-       depends on INPUT
-       depends on RFKILL || RFKILL = n
+       help
+         This driver provides support for Huawei WMI hotkeys, battery charge
+         control, fn-lock, mic-mute LED, and other extra features.
+         To compile this driver as a module, choose M here: the module
+         will be called huawei-wmi.
+ config INTEL_WMI_THUNDERBOLT
+       tristate "Intel WMI thunderbolt force power driver"
        depends on ACPI_WMI
-       select INPUT_SPARSEKMAP
-       # Acer WMI depends on ACPI_VIDEO when ACPI is enabled
-         select ACPI_VIDEO if ACPI
        ---help---
-         This is a driver for newer Acer (and Wistron) laptops. It adds
-         wireless radio and bluetooth control, and on some laptops,
-         exposes the mail LED and LCD backlight.
+         Say Y here if you want to be able to use the WMI interface on select
+         systems to force the power control of Intel Thunderbolt controllers.
+         This is useful for updating the firmware when devices are not plugged
+         into the controller.
  
-         If you have an ACPI-WMI compatible Acer/ Wistron laptop, say Y or M
-         here.
+         To compile this driver as a module, choose M here: the module will
+         be called intel-wmi-thunderbolt.
  
- config ACER_WIRELESS
-         tristate "Acer Wireless Radio Control Driver"
-         depends on ACPI
-         depends on INPUT
-         ---help---
-           The Acer Wireless Radio Control handles the airplane mode hotkey
-           present on new Acer laptops.
+ config MXM_WMI
+        tristate "WMI support for MXM Laptop Graphics"
+        depends on ACPI_WMI
+        ---help---
+           MXM is a standard for laptop graphics cards, the WMI interface
+         is required for switchable nvidia graphics machines
  
-           Say Y or M here if you have an Acer notebook with an airplane mode
-           hotkey.
+ config PEAQ_WMI
+       tristate "PEAQ 2-in-1 WMI hotkey driver"
+       depends on ACPI_WMI
+       depends on INPUT
+       help
+        Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
  
-           If you choose to compile this driver as a module the module will be
-           called acer-wireless.
+ config XIAOMI_WMI
+       tristate "Xiaomi WMI key driver"
+       depends on ACPI_WMI
+       depends on INPUT
+       help
+         Say Y here if you want to support WMI-based keys on Xiaomi notebooks.
+         To compile this driver as a module, choose M here: the module will
+         be called xiaomi-wmi.
  
  config ACERHDF
        tristate "Acer Aspire One temperature and fan driver"
          If you have an Acer Aspire One netbook, say Y or M
          here.
  
- config ALIENWARE_WMI
-       tristate "Alienware Special feature control"
+ config ACER_WIRELESS
+         tristate "Acer Wireless Radio Control Driver"
+         depends on ACPI
+         depends on INPUT
+         ---help---
+           The Acer Wireless Radio Control handles the airplane mode hotkey
+           present on new Acer laptops.
+           Say Y or M here if you have an Acer notebook with an airplane mode
+           hotkey.
+           If you choose to compile this driver as a module the module will be
+           called acer-wireless.
+ config ACER_WMI
+       tristate "Acer WMI Laptop Extras"
        depends on ACPI
-       depends on LEDS_CLASS
-       depends on NEW_LEDS
+       select LEDS_CLASS
+       select NEW_LEDS
+       depends on BACKLIGHT_CLASS_DEVICE
+       depends on SERIO_I8042
+       depends on INPUT
+       depends on RFKILL || RFKILL = n
        depends on ACPI_WMI
+       select INPUT_SPARSEKMAP
+       # Acer WMI depends on ACPI_VIDEO when ACPI is enabled
+         select ACPI_VIDEO if ACPI
        ---help---
-        This is a driver for controlling Alienware BIOS driven
-        features.  It exposes an interface for controlling the AlienFX
-        zones on Alienware machines that don't contain a dedicated AlienFX
-        USB MCU such as the X51 and X51-R2.
+         This is a driver for newer Acer (and Wistron) laptops. It adds
+         wireless radio and bluetooth control, and on some laptops,
+         exposes the mail LED and LCD backlight.
+         If you have an ACPI-WMI compatible Acer/ Wistron laptop, say Y or M
+         here.
+ config APPLE_GMUX
+       tristate "Apple Gmux Driver"
+       depends on ACPI && PCI
+       depends on PNP
+       depends on BACKLIGHT_CLASS_DEVICE
+       depends on BACKLIGHT_APPLE=n || BACKLIGHT_APPLE
+       depends on ACPI_VIDEO=n || ACPI_VIDEO
+       ---help---
+         This driver provides support for the gmux device found on many
+         Apple laptops, which controls the display mux for the hybrid
+         graphics as well as the backlight. Currently only backlight
+         control is supported by the driver.
  
  config ASUS_LAPTOP
        tristate "Asus Laptop Extras"
  
          If you have an ACPI-compatible ASUS laptop, say Y or M here.
  
+ config ASUS_WIRELESS
+       tristate "Asus Wireless Radio Control Driver"
+       depends on ACPI
+       depends on INPUT
+       select NEW_LEDS
+       select LEDS_CLASS
+       ---help---
+         The Asus Wireless Radio Control handles the airplane mode hotkey
+         present on some Asus laptops.
+         Say Y or M here if you have an ASUS notebook with an airplane mode
+         hotkey.
+         If you choose to compile this driver as a module the module will be
+         called asus-wireless.
+ config ASUS_WMI
+       tristate "ASUS WMI Driver"
+       depends on ACPI_WMI
+       depends on ACPI_BATTERY
+       depends on INPUT
+       depends on HWMON
+       depends on BACKLIGHT_CLASS_DEVICE
+       depends on RFKILL || RFKILL = n
+       depends on HOTPLUG_PCI
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       select INPUT_SPARSEKMAP
+       select LEDS_CLASS
+       select NEW_LEDS
+       ---help---
+         Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new
+         Asus Notebooks).
+         To compile this driver as a module, choose M here: the module will
+         be called asus-wmi.
+ config ASUS_NB_WMI
+       tristate "Asus Notebook WMI Driver"
+       depends on ASUS_WMI
+       depends on SERIO_I8042 || SERIO_I8042 = n
+       ---help---
+         This is a driver for newer Asus notebooks. It adds extra features
+         like wireless radio and bluetooth control, leds, hotkeys, backlight...
+         For more information, see
+         <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+         If you have an ACPI-WMI compatible Asus Notebook, say Y or M
+         here.
+ config EEEPC_LAPTOP
+       tristate "Eee PC Hotkey Driver"
+       depends on ACPI
+       depends on INPUT
+       depends on RFKILL || RFKILL = n
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       depends on HOTPLUG_PCI
+       depends on BACKLIGHT_CLASS_DEVICE
+       select HWMON
+       select LEDS_CLASS
+       select NEW_LEDS
+       select INPUT_SPARSEKMAP
+       ---help---
+         This driver supports the Fn-Fx keys on Eee PC laptops.
+         It  also gives access to some extra laptop functionalities like
+         Bluetooth, backlight and allows powering on/off some other
+         devices.
+         If you have an Eee PC laptop, say Y or M here. If this driver
+         doesn't work on your Eee PC, try eeepc-wmi instead.
+ config EEEPC_WMI
+       tristate "Eee PC WMI Driver"
+       depends on ASUS_WMI
+       ---help---
+         This is a driver for newer Eee PC laptops. It adds extra features
+         like wireless radio and bluetooth control, leds, hotkeys, backlight...
+         For more information, see
+         <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+         If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
+         here.
  config DCDBAS
        tristate "Dell Systems Management Base Driver"
        depends on X86
@@@ -183,10 -367,48 +367,48 @@@ config DELL_LAPTO
        This driver adds support for rfkill and backlight control to Dell
        laptops (except for some models covered by the Compal driver).
  
- config DELL_WMI
-       tristate "Dell WMI notifications"
-       depends on ACPI_WMI
-       depends on DMI
+ config DELL_RBTN
+       tristate "Dell Airplane Mode Switch driver"
+       depends on ACPI
+       depends on INPUT
+       depends on RFKILL
+       ---help---
+         Say Y here if you want to support Dell Airplane Mode Switch ACPI
+         device on Dell laptops. Sometimes it has names: DELLABCE or DELRBTN.
+         This driver register rfkill device or input hotkey device depending
+         on hardware type (hw switch slider or keyboard toggle button). For
+         rfkill devices it receive HW switch events and set correct hard
+         rfkill state.
+         To compile this driver as a module, choose M here: the module will
+         be called dell-rbtn.
+ config DELL_RBU
+       tristate "BIOS update support for DELL systems via sysfs"
+       depends on X86
+       select FW_LOADER
+       select FW_LOADER_USER_HELPER
+       help
+        Say m if you want to have the option of updating the BIOS for your
+        DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
+        supporting application to communicate with the BIOS regarding the new
+        image for the image update to take effect.
+        See <file:Documentation/admin-guide/dell_rbu.rst> for more details on the driver.
+ config DELL_SMO8800
+       tristate "Dell Latitude freefall driver (ACPI SMO88XX)"
+       depends on ACPI
+       ---help---
+         Say Y here if you want to support SMO88XX freefall devices
+         on Dell Latitude laptops.
+         To compile this driver as a module, choose M here: the module will
+         be called dell-smo8800.
+ config DELL_WMI
+       tristate "Dell WMI notifications"
+       depends on ACPI_WMI
+       depends on DMI
        depends on INPUT
        depends on ACPI_VIDEO || ACPI_VIDEO = n
        depends on DELL_SMBIOS
@@@ -222,44 -444,13 +444,13 @@@ config DELL_WMI_LE
          This adds support for the Latitude 2100 and similar
          notebooks that have an external LED.
  
- config DELL_SMO8800
-       tristate "Dell Latitude freefall driver (ACPI SMO88XX)"
-       depends on ACPI
-       ---help---
-         Say Y here if you want to support SMO88XX freefall devices
-         on Dell Latitude laptops.
-         To compile this driver as a module, choose M here: the module will
-         be called dell-smo8800.
- config DELL_RBTN
-       tristate "Dell Airplane Mode Switch driver"
-       depends on ACPI
-       depends on INPUT
+ config AMILO_RFKILL
+       tristate "Fujitsu-Siemens Amilo rfkill support"
        depends on RFKILL
+       depends on SERIO_I8042
        ---help---
-         Say Y here if you want to support Dell Airplane Mode Switch ACPI
-         device on Dell laptops. Sometimes it has names: DELLABCE or DELRBTN.
-         This driver register rfkill device or input hotkey device depending
-         on hardware type (hw switch slider or keyboard toggle button). For
-         rfkill devices it receive HW switch events and set correct hard
-         rfkill state.
-         To compile this driver as a module, choose M here: the module will
-         be called dell-rbtn.
- config DELL_RBU
-       tristate "BIOS update support for DELL systems via sysfs"
-       depends on X86
-       select FW_LOADER
-       select FW_LOADER_USER_HELPER
-       help
-        Say m if you want to have the option of updating the BIOS for your
-        DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
-        supporting application to communicate with the BIOS regarding the new
-        image for the image update to take effect.
-        See <file:Documentation/admin-guide/dell_rbu.rst> for more details on the driver.
+         This is a driver for enabling wifi on some Fujitsu-Siemens Amilo
+         laptops.
  
  config FUJITSU_LAPTOP
        tristate "Fujitsu Laptop Extras"
@@@ -297,14 -488,6 +488,6 @@@ config FUJITSU_TABLE
  
           If you have a Fujitsu convertible or slate, say Y or M here.
  
- config AMILO_RFKILL
-       tristate "Fujitsu-Siemens Amilo rfkill support"
-       depends on RFKILL
-       depends on SERIO_I8042
-       ---help---
-         This is a driver for enabling wifi on some Fujitsu-Siemens Amilo
-         laptops.
  config GPD_POCKET_FAN
        tristate "GPD Pocket Fan Controller support"
        depends on ACPI
          of the CPU temperature. Say Y or M if the kernel may be used on a
          GPD pocket.
  
- config TC1100_WMI
-       tristate "HP Compaq TC1100 Tablet WMI Extras"
-       depends on !X86_64
-       depends on ACPI
-       depends on ACPI_WMI
-       ---help---
-         This is a driver for the WMI extensions (wireless and bluetooth power
-         control) of the HP Compaq TC1100 tablet.
  config HP_ACCEL
        tristate "HP laptop accelerometer"
        depends on INPUT && ACPI
@@@ -369,91 -543,30 +543,30 @@@ config HP_WM
         To compile this driver as a module, choose M here: the module will
         be called hp-wmi.
  
- config LG_LAPTOP
-       tristate "LG Laptop Extras"
+ config TC1100_WMI
+       tristate "HP Compaq TC1100 Tablet WMI Extras"
+       depends on !X86_64
        depends on ACPI
        depends on ACPI_WMI
-       depends on INPUT
-       select INPUT_SPARSEKMAP
-       select LEDS_CLASS
-       help
-        This driver adds support for hotkeys as well as control of keyboard
-        backlight, battery maximum charge level and various other ACPI
-        features.
-        If you have an LG Gram laptop, say Y or M here.
- config MSI_LAPTOP
-       tristate "MSI Laptop Extras"
-       depends on ACPI
-       depends on BACKLIGHT_CLASS_DEVICE
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
-       depends on RFKILL
-       depends on INPUT && SERIO_I8042
-       select INPUT_SPARSEKMAP
-       ---help---
-         This is a driver for laptops built by MSI (MICRO-STAR
-         INTERNATIONAL):
-         MSI MegaBook S270 (MS-1013)
-         Cytron/TCM/Medion/Tchibo MD96100/SAM2000
-         It adds support for Bluetooth, WLAN and LCD brightness control.
-         More information about this driver is available at
-         <http://0pointer.de/lennart/tchibo.html>.
-         If you have an MSI S270 laptop, say Y or M here.
- config PANASONIC_LAPTOP
-       tristate "Panasonic Laptop Extras"
-       depends on INPUT && ACPI
-       depends on BACKLIGHT_CLASS_DEVICE
-       select INPUT_SPARSEKMAP
        ---help---
-         This driver adds support for access to backlight control and hotkeys
-         on Panasonic Let's Note laptops.
-         If you have a Panasonic Let's note laptop (such as the R1(N variant),
-         R2, R3, R5, T2, W2 and Y2 series), say Y.
+         This is a driver for the WMI extensions (wireless and bluetooth power
+         control) of the HP Compaq TC1100 tablet.
  
- config COMPAL_LAPTOP
-       tristate "Compal (and others) Laptop Extras"
-       depends on ACPI
-       depends on BACKLIGHT_CLASS_DEVICE
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
-       depends on RFKILL
-       depends on HWMON
-       depends on POWER_SUPPLY
+ config IBM_RTL
+       tristate "Device driver to enable PRTL support"
+       depends on PCI
        ---help---
-         This is a driver for laptops built by Compal, and some models by
-         other brands (e.g. Dell, Toshiba).
-         It adds support for rfkill, Bluetooth, WLAN, LCD brightness, hwmon
-         and battery charging level control.
- config SONY_LAPTOP
-       tristate "Sony Laptop Extras"
-       depends on ACPI
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
-       depends on BACKLIGHT_CLASS_DEVICE
-       depends on INPUT
-       depends on RFKILL
-         ---help---
-         This mini-driver drives the SNC and SPIC devices present in the ACPI
-         BIOS of the Sony Vaio laptops.
-         It gives access to some extra laptop functionalities like Bluetooth,
-         screen brightness control, Fn keys and allows powering on/off some
-         devices.
-         Read <file:Documentation/admin-guide/laptops/sony-laptop.rst> for more information.
+        Enable support for IBM Premium Real Time Mode (PRTM).
+        This module will allow you the enter and exit PRTM in the BIOS via
+        sysfs on platforms that support this feature.  System in PRTM will
+        not receive CPU-generated SMIs for recoverable errors.  Use of this
+        feature without proper support may void your hardware warranty.
  
- config SONYPI_COMPAT
-       bool "Sonypi compatibility"
-       depends on SONY_LAPTOP
-         ---help---
-         Build the sonypi driver compatibility code into the sony-laptop driver.
+        If the proper BIOS support is found the driver will load and create
+        /sys/devices/system/ibm_rtl/.  The "state" variable will indicate
+        whether or not the BIOS is in PRTM.
+        state = 0 (BIOS SMIs on)
+        state = 1 (BIOS SMIs off)
  
  config IDEAPAD_LAPTOP
        tristate "Lenovo IdeaPad Laptop Extras"
          This is a driver for Lenovo IdeaPad netbooks contains drivers for
          rfkill switch, hotkey, fan control and backlight control.
  
- config SURFACE3_WMI
-       tristate "Surface 3 WMI Driver"
-       depends on ACPI_WMI
-       depends on DMI
+ config SENSORS_HDAPS
+       tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
        depends on INPUT
-       depends on SPI
-       ---help---
-         Say Y here if you have a Surface 3.
+       help
+         This driver provides support for the IBM Hard Drive Active Protection
+         System (hdaps), which provides an accelerometer and other misc. data.
+         ThinkPads starting with the R50, T41, and X40 are supported.  The
+         accelerometer data is readable via sysfs.
  
-         To compile this driver as a module, choose M here: the module will
-         be called surface3-wmi.
+         This driver also provides an absolute input class device, allowing
+         the laptop to act as a pinball machine-esque joystick.
+         If your ThinkPad is not recognized by the driver, please update to latest
+         BIOS. This is especially the case for some R52 ThinkPads.
+         Say Y here if you have an applicable laptop and want to experience
+         the awesome power of hdaps.
  
  config THINKPAD_ACPI
        tristate "ThinkPad ACPI Laptop Extras"
@@@ -619,173 -738,157 +738,157 @@@ config THINKPAD_ACPI_HOTKEY_POL
          If you are not sure, say Y here.  The driver enables polling only if
          it is strictly necessary to do so.
  
- config SENSORS_HDAPS
-       tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
-       depends on INPUT
+ config INTEL_ATOMISP2_PM
+       tristate "Intel AtomISP2 dummy / power-management driver"
+       depends on PCI && IOSF_MBI && PM
        help
-         This driver provides support for the IBM Hard Drive Active Protection
-         System (hdaps), which provides an accelerometer and other misc. data.
-         ThinkPads starting with the R50, T41, and X40 are supported.  The
-         accelerometer data is readable via sysfs.
-         This driver also provides an absolute input class device, allowing
-         the laptop to act as a pinball machine-esque joystick.
-         If your ThinkPad is not recognized by the driver, please update to latest
-         BIOS. This is especially the case for some R52 ThinkPads.
+         Power-management driver for Intel's Image Signal Processor found on
+         Bay Trail and Cherry Trail devices. This dummy driver's sole purpose
+         is to turn the ISP off (put it in D3) to save power and to allow
+         entering of S0ix modes.
  
-         Say Y here if you have an applicable laptop and want to experience
-         the awesome power of hdaps.
+         To compile this driver as a module, choose M here: the module
+         will be called intel_atomisp2_pm.
  
- config INTEL_MENLOW
-       tristate "Thermal Management driver for Intel menlow platform"
-       depends on ACPI_THERMAL
-       select THERMAL
+ config INTEL_CHT_INT33FE
+       tristate "Intel Cherry Trail ACPI INT33FE Driver"
+       depends on X86 && ACPI && I2C && REGULATOR
+       depends on CHARGER_BQ24190=y || (CHARGER_BQ24190=m && m)
+       depends on USB_ROLES_INTEL_XHCI=y || (USB_ROLES_INTEL_XHCI=m && m)
+       depends on TYPEC_MUX_PI3USB30532=y || (TYPEC_MUX_PI3USB30532=m && m)
        ---help---
-         ACPI thermal management enhancement driver on
-         Intel Menlow platform.
-         If unsure, say N.
+         This driver add support for the INT33FE ACPI device found on
+         some Intel Cherry Trail devices.
  
- config EEEPC_LAPTOP
-       tristate "Eee PC Hotkey Driver"
-       depends on ACPI
-       depends on INPUT
-       depends on RFKILL || RFKILL = n
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
-       depends on HOTPLUG_PCI
-       depends on BACKLIGHT_CLASS_DEVICE
-       select HWMON
-       select LEDS_CLASS
-       select NEW_LEDS
-       select INPUT_SPARSEKMAP
-       ---help---
-         This driver supports the Fn-Fx keys on Eee PC laptops.
+         There are two kinds of INT33FE ACPI device possible: for hardware
+         with USB Type-C and Micro-B connectors. This driver supports both.
  
-         It  also gives access to some extra laptop functionalities like
-         Bluetooth, backlight and allows powering on/off some other
-         devices.
+         The INT33FE ACPI device has a CRS table with I2cSerialBusV2
+         resources for Fuel Gauge Controller and (in the Type-C variant)
+         FUSB302 USB Type-C Controller and PI3USB30532 USB switch.
+         This driver instantiates i2c-clients for these, so that standard
+         i2c drivers for these chips can bind to the them.
  
-         If you have an Eee PC laptop, say Y or M here. If this driver
-         doesn't work on your Eee PC, try eeepc-wmi instead.
+         If you enable this driver it is advised to also select
+         CONFIG_BATTERY_BQ27XXX=m or CONFIG_BATTERY_BQ27XXX_I2C=m for Micro-B
+         device and CONFIG_TYPEC_FUSB302=m and CONFIG_BATTERY_MAX17042=m
+         for Type-C device.
  
- config ASUS_WMI
-       tristate "ASUS WMI Driver"
-       depends on ACPI_WMI
-       depends on ACPI_BATTERY
+ config INTEL_HID_EVENT
+       tristate "INTEL HID Event"
+       depends on ACPI
        depends on INPUT
-       depends on HWMON
-       depends on BACKLIGHT_CLASS_DEVICE
-       depends on RFKILL || RFKILL = n
-       depends on HOTPLUG_PCI
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
        select INPUT_SPARSEKMAP
-       select LEDS_CLASS
-       select NEW_LEDS
-       ---help---
-         Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new
-         Asus Notebooks).
+       help
+         This driver provides support for the Intel HID Event hotkey interface.
+         Some laptops require this driver for hotkey support.
  
          To compile this driver as a module, choose M here: the module will
-         be called asus-wmi.
+         be called intel_hid.
  
- config ASUS_NB_WMI
-       tristate "Asus Notebook WMI Driver"
-       depends on ASUS_WMI
-       depends on SERIO_I8042 || SERIO_I8042 = n
+ config INTEL_INT0002_VGPIO
+       tristate "Intel ACPI INT0002 Virtual GPIO driver"
+       depends on GPIOLIB && ACPI
+       select GPIOLIB_IRQCHIP
        ---help---
-         This is a driver for newer Asus notebooks. It adds extra features
-         like wireless radio and bluetooth control, leds, hotkeys, backlight...
+         Some peripherals on Bay Trail and Cherry Trail platforms signal a
+         Power Management Event (PME) to the Power Management Controller (PMC)
+         to wakeup the system. When this happens software needs to explicitly
+         clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
+         IRQ storm on IRQ 9.
  
-         For more information, see
-         <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+         This is modelled in ACPI through the INT0002 ACPI device, which is
+         called a "Virtual GPIO controller" in ACPI because it defines the
+         event handler to call when the PME triggers through _AEI and _L02
+         methods as would be done for a real GPIO interrupt in ACPI.
  
-         If you have an ACPI-WMI compatible Asus Notebook, say Y or M
-         here.
+         To compile this driver as a module, choose M here: the module will
+         be called intel_int0002_vgpio.
  
- config EEEPC_WMI
-       tristate "Eee PC WMI Driver"
-       depends on ASUS_WMI
+ config INTEL_MENLOW
+       tristate "Thermal Management driver for Intel menlow platform"
+       depends on ACPI_THERMAL
+       select THERMAL
        ---help---
-         This is a driver for newer Eee PC laptops. It adds extra features
-         like wireless radio and bluetooth control, leds, hotkeys, backlight...
-         For more information, see
-         <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+         ACPI thermal management enhancement driver on
+         Intel Menlow platform.
  
-         If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
-         here.
+         If unsure, say N.
  
- config ASUS_WIRELESS
-       tristate "Asus Wireless Radio Control Driver"
+ config INTEL_OAKTRAIL
+       tristate "Intel Oaktrail Platform Extras"
        depends on ACPI
-       depends on INPUT
-       select NEW_LEDS
-       select LEDS_CLASS
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       depends on RFKILL && BACKLIGHT_CLASS_DEVICE && ACPI
        ---help---
-         The Asus Wireless Radio Control handles the airplane mode hotkey
-         present on some Asus laptops.
-         Say Y or M here if you have an ASUS notebook with an airplane mode
-         hotkey.
-         If you choose to compile this driver as a module the module will be
-         called asus-wireless.
+         Intel Oaktrail platform need this driver to provide interfaces to
+         enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y
+         here; it will only load on supported platforms.
  
- config ACPI_WMI
-       tristate "WMI"
+ config INTEL_VBTN
+       tristate "INTEL VIRTUAL BUTTON"
        depends on ACPI
+       depends on INPUT
+       select INPUT_SPARSEKMAP
        help
-         This driver adds support for the ACPI-WMI (Windows Management
-         Instrumentation) mapper device (PNP0C14) found on some systems.
-         ACPI-WMI is a proprietary extension to ACPI to expose parts of the
-         ACPI firmware to userspace - this is done through various vendor
-         defined methods and data blocks in a PNP0C14 device, which are then
-         made available for userspace to call.
-         The implementation of this in Linux currently only exposes this to
-         other kernel space drivers.
-         This driver is a required dependency to build the firmware specific
-         drivers needed on many machines, including Acer and HP laptops.
+         This driver provides support for the Intel Virtual Button interface.
+         Some laptops require this driver for power button support.
  
-         It is safe to enable this driver even if your DSDT doesn't define
-         any ACPI-WMI devices.
+         To compile this driver as a module, choose M here: the module will
+         be called intel_vbtn.
  
- config WMI_BMOF
-       tristate "WMI embedded Binary MOF driver"
+ config SURFACE3_WMI
+       tristate "Surface 3 WMI Driver"
        depends on ACPI_WMI
-       default ACPI_WMI
+       depends on DMI
+       depends on INPUT
+       depends on SPI
        ---help---
-         Say Y here if you want to be able to read a firmware-embedded
-         WMI Binary MOF data. Using this requires userspace tools and may be
-         rather tedious.
+         Say Y here if you have a Surface 3.
  
          To compile this driver as a module, choose M here: the module will
-         be called wmi-bmof.
+         be called surface3-wmi.
  
- config INTEL_WMI_THUNDERBOLT
-       tristate "Intel WMI thunderbolt force power driver"
-       depends on ACPI_WMI
+ config SURFACE_3_BUTTON
+       tristate "Power/home/volume buttons driver for Microsoft Surface 3 tablet"
+       depends on ACPI && KEYBOARD_GPIO && I2C
        ---help---
-         Say Y here if you want to be able to use the WMI interface on select
-         systems to force the power control of Intel Thunderbolt controllers.
-         This is useful for updating the firmware when devices are not plugged
-         into the controller.
+         This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.
  
-         To compile this driver as a module, choose M here: the module will
-         be called intel-wmi-thunderbolt.
+ config SURFACE_3_POWER_OPREGION
+       tristate "Surface 3 battery platform operation region support"
+       depends on ACPI && I2C
+       help
+         This driver provides support for ACPI operation
+         region of the Surface 3 battery platform driver.
  
- config XIAOMI_WMI
-         tristate "Xiaomi WMI key driver"
-         depends on ACPI_WMI
-         depends on INPUT
-         help
-         Say Y here if you want to support WMI-based keys on Xiaomi notebooks.
+ config SURFACE_PRO3_BUTTON
+       tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet"
+       depends on ACPI && INPUT
+       ---help---
+         This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet.
  
-         To compile this driver as a module, choose M here: the module will
-         be called xiaomi-wmi.
+ config MSI_LAPTOP
+       tristate "MSI Laptop Extras"
+       depends on ACPI
+       depends on BACKLIGHT_CLASS_DEVICE
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       depends on RFKILL
+       depends on INPUT && SERIO_I8042
+       select INPUT_SPARSEKMAP
+       ---help---
+         This is a driver for laptops built by MSI (MICRO-STAR
+         INTERNATIONAL):
+         MSI MegaBook S270 (MS-1013)
+         Cytron/TCM/Medion/Tchibo MD96100/SAM2000
+         It adds support for Bluetooth, WLAN and LCD brightness control.
+         More information about this driver is available at
+         <http://0pointer.de/lennart/tchibo.html>.
+         If you have an MSI S270 laptop, say Y or M here.
  
  config MSI_WMI
        tristate "MSI WMI extras"
         To compile this driver as a module, choose M here: the module will
         be called msi-wmi.
  
- config PEAQ_WMI
-       tristate "PEAQ 2-in-1 WMI hotkey driver"
-       depends on ACPI_WMI
-       depends on INPUT
+ config XO15_EBOOK
+       tristate "OLPC XO-1.5 ebook switch"
+       depends on OLPC || COMPILE_TEST
+       depends on ACPI && INPUT
+       ---help---
+         Support for the ebook switch on the OLPC XO-1.5 laptop.
+         This switch is triggered as the screen is rotated and folded down to
+         convert the device into ebook form.
+ config XO1_RFKILL
+       tristate "OLPC XO-1 software RF kill switch"
+       depends on OLPC || COMPILE_TEST
+       depends on RFKILL
+       ---help---
+         Support for enabling/disabling the WLAN interface on the OLPC XO-1
+         laptop.
+ config PCENGINES_APU2
+       tristate "PC Engines APUv2/3 front button and LEDs driver"
+       depends on INPUT && INPUT_KEYBOARD && GPIOLIB
+       depends on LEDS_CLASS
+       select GPIO_AMD_FCH
+       select KEYBOARD_GPIO_POLLED
+       select LEDS_GPIO
        help
-        Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
+         This driver provides support for the front button and LEDs on
+         PC Engines APUv2/APUv3 board.
  
- config TOPSTAR_LAPTOP
-       tristate "Topstar Laptop Extras"
-       depends on ACPI
-       depends on INPUT
-       select INPUT_SPARSEKMAP
+         To compile this driver as a module, choose M here: the module
+         will be called pcengines-apuv2.
+ config SAMSUNG_LAPTOP
+       tristate "Samsung Laptop driver"
+       depends on RFKILL || RFKILL = n
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       depends on BACKLIGHT_CLASS_DEVICE
        select LEDS_CLASS
        select NEW_LEDS
        ---help---
-         This driver adds support for hotkeys found on Topstar laptops.
+         This module implements a driver for a wide range of different
+         Samsung laptops.  It offers control over the different
+         function keys, wireless LED, LCD backlight level.
  
-         If you have a Topstar laptop, say Y or M here.
+         It may also provide some sysfs files described in
+         <file:Documentation/ABI/testing/sysfs-driver-samsung-laptop>
  
- config ACPI_TOSHIBA
-       tristate "Toshiba Laptop Extras"
+         To compile this driver as a module, choose M here: the module
+         will be called samsung-laptop.
+ config SAMSUNG_Q10
+       tristate "Samsung Q10 Extras"
+       depends on ACPI
+       select BACKLIGHT_CLASS_DEVICE
+       ---help---
+         This driver provides support for backlight control on Samsung Q10
+         and related laptops, including Dell Latitude X200.
+ config ACPI_TOSHIBA
+       tristate "Toshiba Laptop Extras"
        depends on ACPI
        depends on ACPI_WMI
        select LEDS_CLASS
@@@ -917,115 -1059,128 +1059,129 @@@ config ACPI_CMP
          keys as input device, backlight device, tablet and accelerometer
          devices.
  
- config INTEL_CHT_INT33FE
-       tristate "Intel Cherry Trail ACPI INT33FE Driver"
-       depends on X86 && ACPI && I2C && REGULATOR
-       depends on CHARGER_BQ24190=y || (CHARGER_BQ24190=m && m)
-       depends on USB_ROLES_INTEL_XHCI=y || (USB_ROLES_INTEL_XHCI=m && m)
-       depends on TYPEC_MUX_PI3USB30532=y || (TYPEC_MUX_PI3USB30532=m && m)
+ config COMPAL_LAPTOP
+       tristate "Compal (and others) Laptop Extras"
+       depends on ACPI
+       depends on BACKLIGHT_CLASS_DEVICE
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       depends on RFKILL
+       depends on HWMON
+       depends on POWER_SUPPLY
        ---help---
-         This driver add support for the INT33FE ACPI device found on
-         some Intel Cherry Trail devices.
+         This is a driver for laptops built by Compal, and some models by
+         other brands (e.g. Dell, Toshiba).
  
-         There are two kinds of INT33FE ACPI device possible: for hardware
-         with USB Type-C and Micro-B connectors. This driver supports both.
+         It adds support for rfkill, Bluetooth, WLAN, LCD brightness, hwmon
+         and battery charging level control.
  
-         The INT33FE ACPI device has a CRS table with I2cSerialBusV2
-         resources for Fuel Gauge Controller and (in the Type-C variant)
-         FUSB302 USB Type-C Controller and PI3USB30532 USB switch.
-         This driver instantiates i2c-clients for these, so that standard
-         i2c drivers for these chips can bind to the them.
+ config LG_LAPTOP
+       tristate "LG Laptop Extras"
+       depends on ACPI
+       depends on ACPI_WMI
+       depends on INPUT
+       select INPUT_SPARSEKMAP
+       select LEDS_CLASS
+       help
+        This driver adds support for hotkeys as well as control of keyboard
+        backlight, battery maximum charge level and various other ACPI
+        features.
  
-         If you enable this driver it is advised to also select
-         CONFIG_BATTERY_BQ27XXX=m or CONFIG_BATTERY_BQ27XXX_I2C=m for Micro-B
-         device and CONFIG_TYPEC_FUSB302=m and CONFIG_BATTERY_MAX17042=m
-         for Type-C device.
+        If you have an LG Gram laptop, say Y or M here.
+ config PANASONIC_LAPTOP
+       tristate "Panasonic Laptop Extras"
+       depends on INPUT && ACPI
+       depends on BACKLIGHT_CLASS_DEVICE
+       select INPUT_SPARSEKMAP
+       ---help---
+         This driver adds support for access to backlight control and hotkeys
+         on Panasonic Let's Note laptops.
  
+         If you have a Panasonic Let's note laptop (such as the R1(N variant),
+         R2, R3, R5, T2, W2 and Y2 series), say Y.
  
- config INTEL_INT0002_VGPIO
-       tristate "Intel ACPI INT0002 Virtual GPIO driver"
-       depends on GPIOLIB && ACPI
-       select GPIOLIB_IRQCHIP
+ config SONY_LAPTOP
+       tristate "Sony Laptop Extras"
+       depends on ACPI
+       depends on ACPI_VIDEO || ACPI_VIDEO = n
+       depends on BACKLIGHT_CLASS_DEVICE
+       depends on INPUT
+       depends on RFKILL
        ---help---
-         Some peripherals on Bay Trail and Cherry Trail platforms signal a
-         Power Management Event (PME) to the Power Management Controller (PMC)
-         to wakeup the system. When this happens software needs to explicitly
-         clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
-         IRQ storm on IRQ 9.
+         This mini-driver drives the SNC and SPIC devices present in the ACPI
+         BIOS of the Sony Vaio laptops.
  
-         This is modelled in ACPI through the INT0002 ACPI device, which is
-         called a "Virtual GPIO controller" in ACPI because it defines the
-         event handler to call when the PME triggers through _AEI and _L02
-         methods as would be done for a real GPIO interrupt in ACPI.
+         It gives access to some extra laptop functionalities like Bluetooth,
+         screen brightness control, Fn keys and allows powering on/off some
+         devices.
  
-         To compile this driver as a module, choose M here: the module will
-         be called intel_int0002_vgpio.
+         Read <file:Documentation/admin-guide/laptops/sony-laptop.rst> for more information.
  
- config INTEL_HID_EVENT
-       tristate "INTEL HID Event"
+ config SONYPI_COMPAT
+       bool "Sonypi compatibility"
+       depends on SONY_LAPTOP
+       ---help---
+         Build the sonypi driver compatibility code into the sony-laptop driver.
+ config SYSTEM76_ACPI
+       tristate "System76 ACPI Driver"
        depends on ACPI
-       depends on INPUT
-       select INPUT_SPARSEKMAP
+       select NEW_LEDS
+       select LEDS_CLASS
+       select LEDS_TRIGGERS
        help
-         This driver provides support for the Intel HID Event hotkey interface.
-         Some laptops require this driver for hotkey support.
+         This is a driver for System76 laptops running open firmware. It adds
+         support for Fn-Fx key combinations, keyboard backlight, and airplane mode
+         LEDs.
  
-         To compile this driver as a module, choose M here: the module will
-         be called intel_hid.
+         If you have a System76 laptop running open firmware, say Y or M here.
  
- config INTEL_VBTN
-       tristate "INTEL VIRTUAL BUTTON"
+ config TOPSTAR_LAPTOP
+       tristate "Topstar Laptop Extras"
        depends on ACPI
        depends on INPUT
        select INPUT_SPARSEKMAP
-       help
-         This driver provides support for the Intel Virtual Button interface.
-         Some laptops require this driver for power button support.
-         To compile this driver as a module, choose M here: the module will
-         be called intel_vbtn.
- config INTEL_SCU_IPC
-       bool "Intel SCU IPC Support"
-       depends on X86_INTEL_MID
-       default y
+       select LEDS_CLASS
+       select NEW_LEDS
        ---help---
-         IPC is used to bridge the communications between kernel and SCU on
-         some embedded Intel x86 platforms. This is not needed for PC-type
-         machines.
+         This driver adds support for hotkeys found on Topstar laptops.
  
- config INTEL_SCU_IPC_UTIL
-       tristate "Intel SCU IPC utility driver"
-       depends on INTEL_SCU_IPC
-       ---help---
-         The IPC Util driver provides an interface with the SCU enabling
-         low level access for debug work and updating the firmware. Say
-         N unless you will be doing this on an Intel MID platform.
+         If you have a Topstar laptop, say Y or M here.
  
- config INTEL_MID_POWER_BUTTON
-       tristate "power button driver for Intel MID platforms"
-       depends on INTEL_SCU_IPC && INPUT
+ config I2C_MULTI_INSTANTIATE
+       tristate "I2C multi instantiate pseudo device driver"
+       depends on I2C && ACPI
        help
-         This driver handles the power button on the Intel MID platforms.
+         Some ACPI-based systems list multiple i2c-devices in a single ACPI
+         firmware-node. This driver will instantiate separate i2c-clients
+         for each device in the firmware-node.
  
-         If unsure, say N.
+         To compile this driver as a module, choose M here: the module
+         will be called i2c-multi-instantiate.
  
- config INTEL_MFLD_THERMAL
-        tristate "Thermal driver for Intel Medfield platform"
-        depends on MFD_INTEL_MSIC && THERMAL
-        help
-          Say Y here to enable thermal driver support for the  Intel Medfield
-          platform.
+ config MLX_PLATFORM
+       tristate "Mellanox Technologies platform support"
+       depends on I2C && REGMAP
+       ---help---
+         This option enables system support for the Mellanox Technologies
+         platform. The Mellanox systems provide data center networking
+         solutions based on Virtual Protocol Interconnect (VPI) technology
+         enable seamless connectivity to 56/100Gb/s InfiniBand or 10/40/56GbE
+         connection.
  
- config INTEL_IPS
-       tristate "Intel Intelligent Power Sharing"
-       depends on ACPI && PCI
+         If you have a Mellanox system, say Y or M here.
+ config TOUCHSCREEN_DMI
+       bool "DMI based touchscreen configuration info"
+       depends on ACPI && DMI && I2C=y && TOUCHSCREEN_SILEAD
++      select EFI_EMBEDDED_FIRMWARE if EFI
        ---help---
-         Intel Calpella platforms support dynamic power sharing between the
-         CPU and GPU, maximizing performance in a given TDP.  This driver,
-         along with the CPU frequency and i915 drivers, provides that
-         functionality.  If in doubt, say Y here; it will only load on
-         supported platforms.
+         Certain ACPI based tablets with e.g. Silead or Chipone touchscreens
+         do not have enough data in ACPI tables for the touchscreen driver to
+         handle the touchscreen properly, as OEMs expect the data to be baked
+         into the tablet model specific version of the driver shipped with the
+         the OS-image for the device. This option supplies the missing info.
+         Enable this for x86 tablets with Silead or Chipone touchscreens.
  
  config INTEL_IMR
        bool "Intel Isolated Memory Region support"
          IMRs make it possible to control read/write access to an address
          by hardware agents inside the SoC. Read and write masks can be
          defined for:
-               - eSRAM flush
-               - Dirty CPU snoop (write only)
-               - RMU access
-               - PCI Virtual Channel 0/Virtual Channel 1
-               - SMM mode
-               - Non SMM mode
-         Quark contains a set of eight IMR registers and makes use of those
-         registers during its bootup process.
-         If you are running on a Galileo/Quark say Y here.
- config INTEL_PMC_CORE
-       tristate "Intel PMC Core driver"
-       depends on PCI
-       ---help---
-         The Intel Platform Controller Hub for Intel Core SoCs provides access
-         to Power Management Controller registers via a PCI interface. This
-         driver can utilize debugging capabilities and supported features as
-         exposed by the Power Management Controller.
-         Supported features:
-               - SLP_S0_RESIDENCY counter
-               - PCH IP Power Gating status
-               - LTR Ignore
-               - MPHY/PLL gating status (Sunrisepoint PCH only)
- config IBM_RTL
-       tristate "Device driver to enable PRTL support"
-       depends on PCI
-       ---help---
-        Enable support for IBM Premium Real Time Mode (PRTM).
-        This module will allow you the enter and exit PRTM in the BIOS via
-        sysfs on platforms that support this feature.  System in PRTM will
-        not receive CPU-generated SMIs for recoverable errors.  Use of this
-        feature without proper support may void your hardware warranty.
-        If the proper BIOS support is found the driver will load and create
-        /sys/devices/system/ibm_rtl/.  The "state" variable will indicate
-        whether or not the BIOS is in PRTM.
-        state = 0 (BIOS SMIs on)
-        state = 1 (BIOS SMIs off)
- config XO1_RFKILL
-       tristate "OLPC XO-1 software RF kill switch"
-       depends on OLPC || COMPILE_TEST
-       depends on RFKILL
-       ---help---
-         Support for enabling/disabling the WLAN interface on the OLPC XO-1
-         laptop.
- config XO15_EBOOK
-       tristate "OLPC XO-1.5 ebook switch"
-       depends on OLPC || COMPILE_TEST
-       depends on ACPI && INPUT
-       ---help---
-         Support for the ebook switch on the OLPC XO-1.5 laptop.
-         This switch is triggered as the screen is rotated and folded down to
-         convert the device into ebook form.
- config SAMSUNG_LAPTOP
-       tristate "Samsung Laptop driver"
-       depends on RFKILL || RFKILL = n
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
-       depends on BACKLIGHT_CLASS_DEVICE
-       select LEDS_CLASS
-       select NEW_LEDS
-       ---help---
-         This module implements a driver for a wide range of different
-         Samsung laptops.  It offers control over the different
-         function keys, wireless LED, LCD backlight level.
-         It may also provide some sysfs files described in
-         <file:Documentation/ABI/testing/sysfs-driver-samsung-laptop>
-         To compile this driver as a module, choose M here: the module
-         will be called samsung-laptop.
- config MXM_WMI
-        tristate "WMI support for MXM Laptop Graphics"
-        depends on ACPI_WMI
-        ---help---
-           MXM is a standard for laptop graphics cards, the WMI interface
-         is required for switchable nvidia graphics machines
- config INTEL_OAKTRAIL
-       tristate "Intel Oaktrail Platform Extras"
-       depends on ACPI
-       depends on ACPI_VIDEO || ACPI_VIDEO = n
-       depends on RFKILL && BACKLIGHT_CLASS_DEVICE && ACPI
-       ---help---
-         Intel Oaktrail platform need this driver to provide interfaces to
-         enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y
-         here; it will only load on supported platforms.
+               - eSRAM flush
+               - Dirty CPU snoop (write only)
+               - RMU access
+               - PCI Virtual Channel 0/Virtual Channel 1
+               - SMM mode
+               - Non SMM mode
  
- config SAMSUNG_Q10
-       tristate "Samsung Q10 Extras"
-       depends on ACPI
-       select BACKLIGHT_CLASS_DEVICE
-       ---help---
-         This driver provides support for backlight control on Samsung Q10
-         and related laptops, including Dell Latitude X200.
+         Quark contains a set of eight IMR registers and makes use of those
+         registers during its bootup process.
  
- config APPLE_GMUX
-       tristate "Apple Gmux Driver"
+         If you are running on a Galileo/Quark say Y here.
+ config INTEL_IPS
+       tristate "Intel Intelligent Power Sharing"
        depends on ACPI && PCI
-       depends on PNP
-       depends on BACKLIGHT_CLASS_DEVICE
-       depends on BACKLIGHT_APPLE=n || BACKLIGHT_APPLE
-       depends on ACPI_VIDEO=n || ACPI_VIDEO
        ---help---
-         This driver provides support for the gmux device found on many
-         Apple laptops, which controls the display mux for the hybrid
-         graphics as well as the backlight. Currently only backlight
-         control is supported by the driver.
+         Intel Calpella platforms support dynamic power sharing between the
+         CPU and GPU, maximizing performance in a given TDP.  This driver,
+         along with the CPU frequency and i915 drivers, provides that
+         functionality.  If in doubt, say Y here; it will only load on
+         supported platforms.
  
  config INTEL_RST
          tristate "Intel Rapid Start Technology Driver"
        depends on ACPI
        ---help---
-         This driver provides support for modifying paramaters on systems
+         This driver provides support for modifying parameters on systems
          equipped with Intel's Rapid Start Technology. When put in an ACPI
          sleep state, these devices will wake after either a configured
          timeout or when the system battery reaches a critical state,
@@@ -1182,62 -1242,7 +1243,7 @@@ config INTEL_SMARTCONNEC
          This driver checks to determine whether the device has Intel Smart
          Connect enabled, and if so disables it.
  
- config INTEL_PMC_IPC
-       tristate "Intel PMC IPC Driver"
-       depends on ACPI && PCI
-       ---help---
-       This driver provides support for PMC control on some Intel platforms.
-       The PMC is an ARC processor which defines IPC commands for communication
-       with other entities in the CPU.
- config INTEL_BXTWC_PMIC_TMU
-       tristate "Intel BXT Whiskey Cove TMU Driver"
-       depends on REGMAP
-       depends on INTEL_SOC_PMIC_BXTWC && INTEL_PMC_IPC
-       ---help---
-         Select this driver to use Intel BXT Whiskey Cove PMIC TMU feature.
-         This driver enables the alarm wakeup functionality in the TMU unit
-         of Whiskey Cove PMIC.
- config SURFACE_PRO3_BUTTON
-       tristate "Power/home/volume buttons driver for Microsoft Surface Pro 3/4 tablet"
-       depends on ACPI && INPUT
-       ---help---
-         This driver handles the power/home/volume buttons on the Microsoft Surface Pro 3/4 tablet.
- config SURFACE_3_BUTTON
-       tristate "Power/home/volume buttons driver for Microsoft Surface 3 tablet"
-       depends on ACPI && KEYBOARD_GPIO && I2C
-       ---help---
-         This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.
- config INTEL_PUNIT_IPC
-       tristate "Intel P-Unit IPC Driver"
-       ---help---
-         This driver provides support for Intel P-Unit Mailbox IPC mechanism,
-         which is used to bridge the communications between kernel and P-Unit.
- config INTEL_TELEMETRY
-       tristate "Intel SoC Telemetry Driver"
-       depends on INTEL_PMC_IPC && INTEL_PUNIT_IPC && X86_64
-       ---help---
-         This driver provides interfaces to configure and use
-         telemetry for INTEL SoC from APL onwards. It is also
-         used to get various SoC events and parameters
-         directly via debugfs files. Various tools may use
-         this interface for SoC state monitoring.
- config MLX_PLATFORM
-       tristate "Mellanox Technologies platform support"
-       depends on I2C && REGMAP
-       ---help---
-         This option enables system support for the Mellanox Technologies
-         platform. The Mellanox systems provide data center networking
-         solutions based on Virtual Protocol Interconnect (VPI) technology
-         enable seamless connectivity to 56/100Gb/s InfiniBand or 10/40/56GbE
-         connection.
-         If you have a Mellanox system, say Y or M here.
+ source "drivers/platform/x86/intel_speed_select_if/Kconfig"
  
  config INTEL_TURBO_MAX_3
        bool "Intel Turbo Boost Max Technology 3.0 enumeration driver"
          This driver is only required when the system is not using Hardware
          P-States (HWP). In HWP mode, priority can be read from ACPI tables.
  
- config TOUCHSCREEN_DMI
-       bool "DMI based touchscreen configuration info"
-       depends on ACPI && DMI && I2C=y && TOUCHSCREEN_SILEAD
-       select EFI_EMBEDDED_FIRMWARE if EFI
+ config INTEL_UNCORE_FREQ_CONTROL
+       tristate "Intel Uncore frequency control driver"
+       depends on X86_64
+       help
+         This driver allows control of uncore frequency limits on
+         supported server platforms.
+         Uncore frequency controls RING/LLC (last-level cache) clocks.
+         To compile this driver as a module, choose M here: the module
+         will be called intel-uncore-frequency.
+ config INTEL_BXTWC_PMIC_TMU
+       tristate "Intel BXT Whiskey Cove TMU Driver"
+       depends on REGMAP
+       depends on INTEL_SOC_PMIC_BXTWC && INTEL_PMC_IPC
        ---help---
-         Certain ACPI based tablets with e.g. Silead or Chipone touchscreens
-         do not have enough data in ACPI tables for the touchscreen driver to
-         handle the touchscreen properly, as OEMs expect the data to be baked
-         into the tablet model specific version of the driver shipped with the
-         the OS-image for the device. This option supplies the missing info.
-         Enable this for x86 tablets with Silead or Chipone touchscreens.
+         Select this driver to use Intel BXT Whiskey Cove PMIC TMU feature.
+         This driver enables the alarm wakeup functionality in the TMU unit
+         of Whiskey Cove PMIC.
  
  config INTEL_CHTDC_TI_PWRBTN
        tristate "Intel Cherry Trail Dollar Cove TI power button driver"
          To compile this driver as a module, choose M here: the module
          will be called intel_chtdc_ti_pwrbtn.
  
+ config INTEL_MFLD_THERMAL
+        tristate "Thermal driver for Intel Medfield platform"
+        depends on MFD_INTEL_MSIC && THERMAL
+        help
+          Say Y here to enable thermal driver support for the  Intel Medfield
+          platform.
+ config INTEL_MID_POWER_BUTTON
+       tristate "power button driver for Intel MID platforms"
+       depends on INTEL_SCU_IPC && INPUT
+       help
+         This driver handles the power button on the Intel MID platforms.
+         If unsure, say N.
  config INTEL_MRFLD_PWRBTN
        tristate "Intel Merrifield Basin Cove power button driver"
        depends on INTEL_SOC_PMIC_MRFLD
          To compile this driver as a module, choose M here: the module
          will be called intel_mrfld_pwrbtn.
  
- config I2C_MULTI_INSTANTIATE
-       tristate "I2C multi instantiate pseudo device driver"
-       depends on I2C && ACPI
-       help
-         Some ACPI-based systems list multiple i2c-devices in a single ACPI
-         firmware-node. This driver will instantiate separate i2c-clients
-         for each device in the firmware-node.
-         To compile this driver as a module, choose M here: the module
-         will be called i2c-multi-instantiate.
- config INTEL_ATOMISP2_PM
-       tristate "Intel AtomISP2 dummy / power-management driver"
-       depends on PCI && IOSF_MBI && PM
-       help
-         Power-management driver for Intel's Image Signal Processor found on
-         Bay Trail and Cherry Trail devices. This dummy driver's sole purpose
-         is to turn the ISP off (put it in D3) to save power and to allow
-         entering of S0ix modes.
-         To compile this driver as a module, choose M here: the module
-         will be called intel_atomisp2_pm.
- config HUAWEI_WMI
-       tristate "Huawei WMI laptop extras driver"
-       depends on ACPI_BATTERY
-       depends on ACPI_WMI
-       depends on INPUT
-       select INPUT_SPARSEKMAP
-       select LEDS_CLASS
-       select LEDS_TRIGGERS
-       select LEDS_TRIGGER_AUDIO
-       select NEW_LEDS
-       help
-         This driver provides support for Huawei WMI hotkeys, battery charge
-         control, fn-lock, mic-mute LED, and other extra features.
-         To compile this driver as a module, choose M here: the module
-         will be called huawei-wmi.
- config PCENGINES_APU2
-       tristate "PC Engines APUv2/3 front button and LEDs driver"
-       depends on INPUT && INPUT_KEYBOARD && GPIOLIB
-       depends on LEDS_CLASS
-       select GPIO_AMD_FCH
-       select KEYBOARD_GPIO_POLLED
-       select LEDS_GPIO
-       help
-         This driver provides support for the front button and LEDs on
-         PC Engines APUv2/APUv3 board.
+ config INTEL_PMC_CORE
+       tristate "Intel PMC Core driver"
+       depends on PCI
+       ---help---
+         The Intel Platform Controller Hub for Intel Core SoCs provides access
+         to Power Management Controller registers via a PCI interface. This
+         driver can utilize debugging capabilities and supported features as
+         exposed by the Power Management Controller.
  
-         To compile this driver as a module, choose M here: the module
-         will be called pcengines-apuv2.
+         Supported features:
+               - SLP_S0_RESIDENCY counter
+               - PCH IP Power Gating status
+               - LTR Ignore
+               - MPHY/PLL gating status (Sunrisepoint PCH only)
  
- config INTEL_UNCORE_FREQ_CONTROL
-       tristate "Intel Uncore frequency control driver"
-       depends on X86_64
-       help
-         This driver allows control of uncore frequency limits on
-         supported server platforms.
-         Uncore frequency controls RING/LLC (last-level cache) clocks.
+ config INTEL_PMC_IPC
+       tristate "Intel PMC IPC Driver"
+       depends on ACPI && PCI
+       ---help---
+       This driver provides support for PMC control on some Intel platforms.
+       The PMC is an ARC processor which defines IPC commands for communication
+       with other entities in the CPU.
  
-         To compile this driver as a module, choose M here: the module
-         will be called intel-uncore-frequency.
+ config INTEL_PUNIT_IPC
+       tristate "Intel P-Unit IPC Driver"
+       ---help---
+         This driver provides support for Intel P-Unit Mailbox IPC mechanism,
+         which is used to bridge the communications between kernel and P-Unit.
  
- source "drivers/platform/x86/intel_speed_select_if/Kconfig"
+ config INTEL_SCU_IPC
+       bool "Intel SCU IPC Support"
+       depends on X86_INTEL_MID
+       default y
+       ---help---
+         IPC is used to bridge the communications between kernel and SCU on
+         some embedded Intel x86 platforms. This is not needed for PC-type
+         machines.
  
- config SYSTEM76_ACPI
-       tristate "System76 ACPI Driver"
-       depends on ACPI
-       select NEW_LEDS
-       select LEDS_CLASS
-       select LEDS_TRIGGERS
-       help
-         This is a driver for System76 laptops running open firmware. It adds
-         support for Fn-Fx key combinations, keyboard backlight, and airplane mode
-         LEDs.
+ config INTEL_SCU_IPC_UTIL
+       tristate "Intel SCU IPC utility driver"
+       depends on INTEL_SCU_IPC
+       ---help---
+         The IPC Util driver provides an interface with the SCU enabling
+         low level access for debug work and updating the firmware. Say
+         N unless you will be doing this on an Intel MID platform.
  
-         If you have a System76 laptop running open firmware, say Y or M here.
+ config INTEL_TELEMETRY
+       tristate "Intel SoC Telemetry Driver"
+       depends on INTEL_PMC_IPC && INTEL_PUNIT_IPC && X86_64
+       ---help---
+         This driver provides interfaces to configure and use
+         telemetry for INTEL SoC from APL onwards. It is also
+         used to get various SoC events and parameters
+         directly via debugfs files. Various tools may use
+         this interface for SoC state monitoring.
  
  endif # X86_PLATFORM_DEVICES
  
index 859272075a8fc4c78876ff27447a862957ef62a5,82f2de7c4112f796143067458b90fc19b5776ec8..b96d172eb2c15e04471cbbe80cd3da17b1c01061
@@@ -38,6 -38,7 +38,7 @@@
   */
  struct uncore_data {
        struct kobject kobj;
+       struct completion kobj_unregister;
        u64 stored_uncore_data;
        u32 initial_min_freq_khz;
        u32 initial_max_freq_khz;
@@@ -52,7 -53,7 +53,7 @@@ static int uncore_max_entries __read_mo
  /* Storage for uncore data for all instances */
  static struct uncore_data *uncore_instances;
  /* Root of the all uncore sysfs kobjs */
- struct kobject uncore_root_kobj;
+ struct kobject *uncore_root_kobj;
  /* Stores the CPU mask of the target CPUs to use during uncore read/write */
  static cpumask_t uncore_cpu_mask;
  /* CPU online callback register instance */
@@@ -97,6 -98,9 +98,9 @@@ static int uncore_read_ratio(struct unc
        u64 cap;
        int ret;
  
+       if (data->control_cpu < 0)
+               return -ENXIO;
        ret = rdmsrl_on_cpu(data->control_cpu, MSR_UNCORE_RATIO_LIMIT, &cap);
        if (ret)
                return ret;
@@@ -116,6 -120,11 +120,11 @@@ static int uncore_write_ratio(struct un
  
        mutex_lock(&uncore_lock);
  
+       if (data->control_cpu < 0) {
+               ret = -ENXIO;
+               goto finish_write;
+       }
        input /= UNCORE_FREQ_KHZ_MULTIPLIER;
        if (!input || input > 0x7F) {
                ret = -EINVAL;
@@@ -217,15 -226,19 +226,19 @@@ static struct attribute *uncore_attrs[
        NULL
  };
  
+ static void uncore_sysfs_entry_release(struct kobject *kobj)
+ {
+       struct uncore_data *data = to_uncore_data(kobj);
+       complete(&data->kobj_unregister);
+ }
  static struct kobj_type uncore_ktype = {
+       .release = uncore_sysfs_entry_release,
        .sysfs_ops = &kobj_sysfs_ops,
        .default_attrs = uncore_attrs,
  };
  
- static struct kobj_type uncore_root_ktype = {
-       .sysfs_ops = &kobj_sysfs_ops,
- };
  /* Caller provides protection */
  static struct uncore_data *uncore_get_instance(unsigned int cpu)
  {
@@@ -263,8 -276,10 +276,10 @@@ static void uncore_add_die_entry(int cp
                uncore_read_ratio(data, &data->initial_min_freq_khz,
                                  &data->initial_max_freq_khz);
  
+               init_completion(&data->kobj_unregister);
                ret = kobject_init_and_add(&data->kobj, &uncore_ktype,
-                                          &uncore_root_kobj, str);
+                                          uncore_root_kobj, str);
                if (!ret) {
                        data->control_cpu = cpu;
                        data->valid = true;
        mutex_unlock(&uncore_lock);
  }
  
- /* Last CPU in this die is offline, so remove sysfs entries */
+ /* Last CPU in this die is offline, make control cpu invalid */
  static void uncore_remove_die_entry(int cpu)
  {
        struct uncore_data *data;
  
        mutex_lock(&uncore_lock);
        data = uncore_get_instance(cpu);
-       if (data) {
-               kobject_put(&data->kobj);
+       if (data)
                data->control_cpu = -1;
-               data->valid = false;
-       }
        mutex_unlock(&uncore_lock);
  }
  
@@@ -358,13 -370,15 +370,13 @@@ static struct notifier_block uncore_pm_
        .notifier_call = uncore_pm_notify,
  };
  
 -#define ICPU(model)     { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
 -
  static const struct x86_cpu_id intel_uncore_cpu_ids[] = {
 -      ICPU(INTEL_FAM6_BROADWELL_G),
 -      ICPU(INTEL_FAM6_BROADWELL_X),
 -      ICPU(INTEL_FAM6_BROADWELL_D),
 -      ICPU(INTEL_FAM6_SKYLAKE_X),
 -      ICPU(INTEL_FAM6_ICELAKE_X),
 -      ICPU(INTEL_FAM6_ICELAKE_D),
 +      X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G, NULL),
 +      X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X, NULL),
 +      X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D, NULL),
 +      X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,   NULL),
 +      X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X,   NULL),
 +      X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_D,   NULL),
        {}
  };
  
@@@ -384,11 -398,12 +396,12 @@@ static int __init intel_uncore_init(voi
        if (!uncore_instances)
                return -ENOMEM;
  
-       ret = kobject_init_and_add(&uncore_root_kobj, &uncore_root_ktype,
-                                  &cpu_subsys.dev_root->kobj,
-                                  "intel_uncore_frequency");
-       if (ret)
+       uncore_root_kobj = kobject_create_and_add("intel_uncore_frequency",
+                                                 &cpu_subsys.dev_root->kobj);
+       if (!uncore_root_kobj) {
+               ret = -ENOMEM;
                goto err_free;
+       }
  
        ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
                                "platform/x86/uncore-freq:online",
  err_rem_state:
        cpuhp_remove_state(uncore_hp_state);
  err_rem_kobj:
-       kobject_put(&uncore_root_kobj);
+       kobject_put(uncore_root_kobj);
  err_free:
        kfree(uncore_instances);
  
@@@ -423,10 -438,12 +436,12 @@@ static void __exit intel_uncore_exit(vo
        unregister_pm_notifier(&uncore_pm_nb);
        cpuhp_remove_state(uncore_hp_state);
        for (i = 0; i < uncore_max_entries; ++i) {
-               if (uncore_instances[i].valid)
+               if (uncore_instances[i].valid) {
                        kobject_put(&uncore_instances[i].kobj);
+                       wait_for_completion(&uncore_instances[i].kobj_unregister);
+               }
        }
-       kobject_put(&uncore_root_kobj);
+       kobject_put(uncore_root_kobj);
        kfree(uncore_instances);
  }
  module_exit(intel_uncore_exit)
index 3df33ff50faa95ba14e46169eb437c19a3dbc3a8,d265cd5b1f459392519b860171492b221ca04487..d2a5d4c367152553799a3b152f4c7e334bc8f179
@@@ -20,6 -20,7 +20,7 @@@
  #include <linux/module.h>
  #include <linux/pci.h>
  #include <linux/platform_device.h>
+ #include <linux/slab.h>
  #include <linux/suspend.h>
  #include <linux/uaccess.h>
  
@@@ -193,7 -194,7 +194,7 @@@ static const struct pmc_bit_map cnp_pfe
        {"Fuse",                BIT(6)},
        /*
         * Reserved for Cannon Lake but valid for Ice Lake, Comet Lake,
-        * Tiger Lake and Elkhart Lake.
+        * Tiger Lake, Elkhart Lake and Jasper Lake.
         */
        {"SBR8",                BIT(7)},
  
        {"HDA_PGD6",            BIT(4)},
        /*
         * Reserved for Cannon Lake but valid for Ice Lake, Comet Lake,
-        * Tiger Lake and ELkhart Lake.
+        * Tiger Lake, ELkhart Lake and Jasper Lake.
         */
        {"PSF6",                BIT(5)},
        {"PSF7",                BIT(6)},
@@@ -273,7 -274,7 +274,7 @@@ static const struct pmc_bit_map *ext_ic
  };
  
  static const struct pmc_bit_map tgl_pfear_map[] = {
-       /* Tiger Lake and Elkhart Lake generation onwards only */
+       /* Tiger Lake, Elkhart Lake and Jasper Lake generation onwards only */
        {"PSF9",                BIT(0)},
        {"RES_66",              BIT(1)},
        {"RES_67",              BIT(2)},
@@@ -408,13 -409,157 +409,157 @@@ static const struct pmc_reg_map icl_reg
        .ltr_ignore_max = ICL_NUM_IP_IGN_ALLOWED,
  };
  
+ static const struct pmc_bit_map tgl_lpm0_map[] = {
+       {"USB2PLL_OFF_STS",                     BIT(18)},
+       {"PCIe/USB3.1_Gen2PLL_OFF_STS",         BIT(19)},
+       {"PCIe_Gen3PLL_OFF_STS",                BIT(20)},
+       {"OPIOPLL_OFF_STS",                     BIT(21)},
+       {"OCPLL_OFF_STS",                       BIT(22)},
+       {"AudioPLL_OFF_STS",                    BIT(23)},
+       {"MIPIPLL_OFF_STS",                     BIT(24)},
+       {"Fast_XTAL_Osc_OFF_STS",               BIT(25)},
+       {"AC_Ring_Osc_OFF_STS",                 BIT(26)},
+       {"MC_Ring_Osc_OFF_STS",                 BIT(27)},
+       {"SATAPLL_OFF_STS",                     BIT(29)},
+       {"XTAL_USB2PLL_OFF_STS",                BIT(31)},
+       {}
+ };
+ static const struct pmc_bit_map tgl_lpm1_map[] = {
+       {"SPI_PG_STS",                          BIT(2)},
+       {"xHCI_PG_STS",                         BIT(3)},
+       {"PCIe_Ctrller_A_PG_STS",               BIT(4)},
+       {"PCIe_Ctrller_B_PG_STS",               BIT(5)},
+       {"PCIe_Ctrller_C_PG_STS",               BIT(6)},
+       {"GBE_PG_STS",                          BIT(7)},
+       {"SATA_PG_STS",                         BIT(8)},
+       {"HDA0_PG_STS",                         BIT(9)},
+       {"HDA1_PG_STS",                         BIT(10)},
+       {"HDA2_PG_STS",                         BIT(11)},
+       {"HDA3_PG_STS",                         BIT(12)},
+       {"PCIe_Ctrller_D_PG_STS",               BIT(13)},
+       {"ISIO_PG_STS",                         BIT(14)},
+       {"SMB_PG_STS",                          BIT(16)},
+       {"ISH_PG_STS",                          BIT(17)},
+       {"ITH_PG_STS",                          BIT(19)},
+       {"SDX_PG_STS",                          BIT(20)},
+       {"xDCI_PG_STS",                         BIT(25)},
+       {"DCI_PG_STS",                          BIT(26)},
+       {"CSME0_PG_STS",                        BIT(27)},
+       {"CSME_KVM_PG_STS",                     BIT(28)},
+       {"CSME1_PG_STS",                        BIT(29)},
+       {"CSME_CLINK_PG_STS",                   BIT(30)},
+       {"CSME2_PG_STS",                        BIT(31)},
+       {}
+ };
+ static const struct pmc_bit_map tgl_lpm2_map[] = {
+       {"ADSP_D3_STS",                         BIT(0)},
+       {"SATA_D3_STS",                         BIT(1)},
+       {"xHCI0_D3_STS",                        BIT(2)},
+       {"xDCI1_D3_STS",                        BIT(5)},
+       {"SDX_D3_STS",                          BIT(6)},
+       {"EMMC_D3_STS",                         BIT(7)},
+       {"IS_D3_STS",                           BIT(8)},
+       {"THC0_D3_STS",                         BIT(9)},
+       {"THC1_D3_STS",                         BIT(10)},
+       {"GBE_D3_STS",                          BIT(11)},
+       {"GBE_TSN_D3_STS",                      BIT(12)},
+       {}
+ };
+ static const struct pmc_bit_map tgl_lpm3_map[] = {
+       {"GPIO_COM0_VNN_REQ_STS",               BIT(1)},
+       {"GPIO_COM1_VNN_REQ_STS",               BIT(2)},
+       {"GPIO_COM2_VNN_REQ_STS",               BIT(3)},
+       {"GPIO_COM3_VNN_REQ_STS",               BIT(4)},
+       {"GPIO_COM4_VNN_REQ_STS",               BIT(5)},
+       {"GPIO_COM5_VNN_REQ_STS",               BIT(6)},
+       {"Audio_VNN_REQ_STS",                   BIT(7)},
+       {"ISH_VNN_REQ_STS",                     BIT(8)},
+       {"CNVI_VNN_REQ_STS",                    BIT(9)},
+       {"eSPI_VNN_REQ_STS",                    BIT(10)},
+       {"Display_VNN_REQ_STS",                 BIT(11)},
+       {"DTS_VNN_REQ_STS",                     BIT(12)},
+       {"SMBUS_VNN_REQ_STS",                   BIT(14)},
+       {"CSME_VNN_REQ_STS",                    BIT(15)},
+       {"SMLINK0_VNN_REQ_STS",                 BIT(16)},
+       {"SMLINK1_VNN_REQ_STS",                 BIT(17)},
+       {"CLINK_VNN_REQ_STS",                   BIT(20)},
+       {"DCI_VNN_REQ_STS",                     BIT(21)},
+       {"ITH_VNN_REQ_STS",                     BIT(22)},
+       {"CSME_VNN_REQ_STS",                    BIT(24)},
+       {"GBE_VNN_REQ_STS",                     BIT(25)},
+       {}
+ };
+ static const struct pmc_bit_map tgl_lpm4_map[] = {
+       {"CPU_C10_REQ_STS_0",                   BIT(0)},
+       {"PCIe_LPM_En_REQ_STS_3",               BIT(3)},
+       {"ITH_REQ_STS_5",                       BIT(5)},
+       {"CNVI_REQ_STS_6",                      BIT(6)},
+       {"ISH_REQ_STS_7",                       BIT(7)},
+       {"USB2_SUS_PG_Sys_REQ_STS_10",          BIT(10)},
+       {"PCIe_Clk_REQ_STS_12",                 BIT(12)},
+       {"MPHY_Core_DL_REQ_STS_16",             BIT(16)},
+       {"Break-even_En_REQ_STS_17",            BIT(17)},
+       {"Auto-demo_En_REQ_STS_18",             BIT(18)},
+       {"MPHY_SUS_REQ_STS_22",                 BIT(22)},
+       {"xDCI_attached_REQ_STS_24",            BIT(24)},
+       {}
+ };
+ static const struct pmc_bit_map tgl_lpm5_map[] = {
+       {"LSX_Wake0_En_STS",                    BIT(0)},
+       {"LSX_Wake0_Pol_STS",                   BIT(1)},
+       {"LSX_Wake1_En_STS",                    BIT(2)},
+       {"LSX_Wake1_Pol_STS",                   BIT(3)},
+       {"LSX_Wake2_En_STS",                    BIT(4)},
+       {"LSX_Wake2_Pol_STS",                   BIT(5)},
+       {"LSX_Wake3_En_STS",                    BIT(6)},
+       {"LSX_Wake3_Pol_STS",                   BIT(7)},
+       {"LSX_Wake4_En_STS",                    BIT(8)},
+       {"LSX_Wake4_Pol_STS",                   BIT(9)},
+       {"LSX_Wake5_En_STS",                    BIT(10)},
+       {"LSX_Wake5_Pol_STS",                   BIT(11)},
+       {"LSX_Wake6_En_STS",                    BIT(12)},
+       {"LSX_Wake6_Pol_STS",                   BIT(13)},
+       {"LSX_Wake7_En_STS",                    BIT(14)},
+       {"LSX_Wake7_Pol_STS",                   BIT(15)},
+       {"Intel_Se_IO_Wake0_En_STS",            BIT(16)},
+       {"Intel_Se_IO_Wake0_Pol_STS",           BIT(17)},
+       {"Intel_Se_IO_Wake1_En_STS",            BIT(18)},
+       {"Intel_Se_IO_Wake1_Pol_STS",           BIT(19)},
+       {"Int_Timer_SS_Wake0_En_STS",           BIT(20)},
+       {"Int_Timer_SS_Wake0_Pol_STS",          BIT(21)},
+       {"Int_Timer_SS_Wake1_En_STS",           BIT(22)},
+       {"Int_Timer_SS_Wake1_Pol_STS",          BIT(23)},
+       {"Int_Timer_SS_Wake2_En_STS",           BIT(24)},
+       {"Int_Timer_SS_Wake2_Pol_STS",          BIT(25)},
+       {"Int_Timer_SS_Wake3_En_STS",           BIT(26)},
+       {"Int_Timer_SS_Wake3_Pol_STS",          BIT(27)},
+       {"Int_Timer_SS_Wake4_En_STS",           BIT(28)},
+       {"Int_Timer_SS_Wake4_Pol_STS",          BIT(29)},
+       {"Int_Timer_SS_Wake5_En_STS",           BIT(30)},
+       {"Int_Timer_SS_Wake5_Pol_STS",          BIT(31)},
+       {}
+ };
+ static const struct pmc_bit_map *tgl_lpm_maps[] = {
+       tgl_lpm0_map,
+       tgl_lpm1_map,
+       tgl_lpm2_map,
+       tgl_lpm3_map,
+       tgl_lpm4_map,
+       tgl_lpm5_map,
+       NULL
+ };
  static const struct pmc_reg_map tgl_reg_map = {
        .pfear_sts = ext_tgl_pfear_map,
        .slp_s0_offset = CNP_PMC_SLP_S0_RES_COUNTER_OFFSET,
-       .slps0_dbg_maps = cnp_slps0_dbg_maps,
        .ltr_show_sts = cnp_ltr_show_map,
        .msr_sts = msr_map,
-       .slps0_dbg_offset = CNP_PMC_SLPS0_DBG_OFFSET,
        .ltr_ignore_offset = CNP_PMC_LTR_IGNORE_OFFSET,
        .regmap_length = CNP_PMC_MMIO_REG_LEN,
        .ppfear0_offset = CNP_PMC_HOST_PPFEAR0A,
        .pm_cfg_offset = CNP_PMC_PM_CFG_OFFSET,
        .pm_read_disable_bit = CNP_PMC_READ_DISABLE_BIT,
        .ltr_ignore_max = TGL_NUM_IP_IGN_ALLOWED,
+       .lpm_modes = tgl_lpm_modes,
+       .lpm_en_offset = TGL_LPM_EN_OFFSET,
+       .lpm_residency_offset = TGL_LPM_RESIDENCY_OFFSET,
+       .lpm_sts = tgl_lpm_maps,
+       .lpm_status_offset = TGL_LPM_STATUS_OFFSET,
+       .lpm_live_status_offset = TGL_LPM_LIVE_STATUS_OFFSET,
  };
  
  static inline u32 pmc_core_reg_read(struct pmc_dev *pmcdev, int reg_offset)
@@@ -463,6 -614,84 +614,84 @@@ static int pmc_core_check_read_lock_bit
        return value & BIT(pmcdev->map->pm_read_disable_bit);
  }
  
+ static void pmc_core_slps0_display(struct pmc_dev *pmcdev, struct device *dev,
+                                  struct seq_file *s)
+ {
+       const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps;
+       const struct pmc_bit_map *map;
+       int offset = pmcdev->map->slps0_dbg_offset;
+       u32 data;
+       while (*maps) {
+               map = *maps;
+               data = pmc_core_reg_read(pmcdev, offset);
+               offset += 4;
+               while (map->name) {
+                       if (dev)
+                               dev_dbg(dev, "SLP_S0_DBG: %-32s\tState: %s\n",
+                                       map->name,
+                                       data & map->bit_mask ? "Yes" : "No");
+                       if (s)
+                               seq_printf(s, "SLP_S0_DBG: %-32s\tState: %s\n",
+                                          map->name,
+                                          data & map->bit_mask ? "Yes" : "No");
+                       ++map;
+               }
+               ++maps;
+       }
+ }
+ static int pmc_core_lpm_get_arr_size(const struct pmc_bit_map **maps)
+ {
+       int idx;
+       for (idx = 0; maps[idx]; idx++)
+               ;/* Nothing */
+       return idx;
+ }
+ static void pmc_core_lpm_display(struct pmc_dev *pmcdev, struct device *dev,
+                                struct seq_file *s, u32 offset,
+                                const char *str,
+                                const struct pmc_bit_map **maps)
+ {
+       int index, idx, len = 32, bit_mask, arr_size;
+       u32 *lpm_regs;
+       arr_size = pmc_core_lpm_get_arr_size(maps);
+       lpm_regs = kmalloc_array(arr_size, sizeof(*lpm_regs), GFP_KERNEL);
+       if (!lpm_regs)
+               return;
+       for (index = 0; index < arr_size; index++) {
+               lpm_regs[index] = pmc_core_reg_read(pmcdev, offset);
+               offset += 4;
+       }
+       for (idx = 0; idx < arr_size; idx++) {
+               if (dev)
+                       dev_dbg(dev, "\nLPM_%s_%d:\t0x%x\n", str, idx,
+                               lpm_regs[idx]);
+               if (s)
+                       seq_printf(s, "\nLPM_%s_%d:\t0x%x\n", str, idx,
+                                  lpm_regs[idx]);
+               for (index = 0; maps[idx][index].name && index < len; index++) {
+                       bit_mask = maps[idx][index].bit_mask;
+                       if (dev)
+                               dev_dbg(dev, "%-30s %-30d\n",
+                                       maps[idx][index].name,
+                                       lpm_regs[idx] & bit_mask ? 1 : 0);
+                       if (s)
+                               seq_printf(s, "%-30s %-30d\n",
+                                          maps[idx][index].name,
+                                          lpm_regs[idx] & bit_mask ? 1 : 0);
+               }
+       }
+       kfree(lpm_regs);
+ }
  #if IS_ENABLED(CONFIG_DEBUG_FS)
  static bool slps0_dbg_latch;
  
@@@ -698,27 -927,11 +927,11 @@@ out_unlock
  static int pmc_core_slps0_dbg_show(struct seq_file *s, void *unused)
  {
        struct pmc_dev *pmcdev = s->private;
-       const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps;
-       const struct pmc_bit_map *map;
-       int offset;
-       u32 data;
  
        pmc_core_slps0_dbg_latch(pmcdev, false);
-       offset = pmcdev->map->slps0_dbg_offset;
-       while (*maps) {
-               map = *maps;
-               data = pmc_core_reg_read(pmcdev, offset);
-               offset += 4;
-               while (map->name) {
-                       seq_printf(s, "SLP_S0_DBG: %-32s\tState: %s\n",
-                                  map->name,
-                                  data & map->bit_mask ?
-                                  "Yes" : "No");
-                       ++map;
-               }
-               ++maps;
-       }
+       pmc_core_slps0_display(pmcdev, NULL, s);
        pmc_core_slps0_dbg_latch(pmcdev, true);
        return 0;
  }
  DEFINE_SHOW_ATTRIBUTE(pmc_core_slps0_dbg);
@@@ -794,6 -1007,51 +1007,51 @@@ static int pmc_core_ltr_show(struct seq
  }
  DEFINE_SHOW_ATTRIBUTE(pmc_core_ltr);
  
+ static int pmc_core_substate_res_show(struct seq_file *s, void *unused)
+ {
+       struct pmc_dev *pmcdev = s->private;
+       const char **lpm_modes = pmcdev->map->lpm_modes;
+       u32 offset = pmcdev->map->lpm_residency_offset;
+       u32 lpm_en;
+       int index;
+       lpm_en = pmc_core_reg_read(pmcdev, pmcdev->map->lpm_en_offset);
+       seq_printf(s, "status substate residency\n");
+       for (index = 0; lpm_modes[index]; index++) {
+               seq_printf(s, "%7s %7s %-15u\n",
+                          BIT(index) & lpm_en ? "Enabled" : " ",
+                          lpm_modes[index], pmc_core_reg_read(pmcdev, offset));
+               offset += 4;
+       }
+       return 0;
+ }
+ DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_res);
+ static int pmc_core_substate_sts_regs_show(struct seq_file *s, void *unused)
+ {
+       struct pmc_dev *pmcdev = s->private;
+       const struct pmc_bit_map **maps = pmcdev->map->lpm_sts;
+       u32 offset = pmcdev->map->lpm_status_offset;
+       pmc_core_lpm_display(pmcdev, NULL, s, offset, "STATUS", maps);
+       return 0;
+ }
+ DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_sts_regs);
+ static int pmc_core_substate_l_sts_regs_show(struct seq_file *s, void *unused)
+ {
+       struct pmc_dev *pmcdev = s->private;
+       const struct pmc_bit_map **maps = pmcdev->map->lpm_sts;
+       u32 offset = pmcdev->map->lpm_live_status_offset;
+       pmc_core_lpm_display(pmcdev, NULL, s, offset, "LIVE_STATUS", maps);
+       return 0;
+ }
+ DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_l_sts_regs);
  static int pmc_core_pkgc_show(struct seq_file *s, void *unused)
  {
        struct pmc_dev *pmcdev = s->private;
@@@ -859,6 -1117,21 +1117,21 @@@ static void pmc_core_dbgfs_register(str
                debugfs_create_bool("slp_s0_dbg_latch", 0644,
                                    dir, &slps0_dbg_latch);
        }
+       if (pmcdev->map->lpm_en_offset) {
+               debugfs_create_file("substate_residencies", 0444,
+                                   pmcdev->dbgfs_dir, pmcdev,
+                                   &pmc_core_substate_res_fops);
+       }
+       if (pmcdev->map->lpm_status_offset) {
+               debugfs_create_file("substate_status_registers", 0444,
+                                   pmcdev->dbgfs_dir, pmcdev,
+                                   &pmc_core_substate_sts_regs_fops);
+               debugfs_create_file("substate_live_status_registers", 0444,
+                                   pmcdev->dbgfs_dir, pmcdev,
+                                   &pmc_core_substate_l_sts_regs_fops);
+       }
  }
  #else
  static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
@@@ -871,18 -1144,19 +1144,19 @@@ static inline void pmc_core_dbgfs_unreg
  #endif /* CONFIG_DEBUG_FS */
  
  static const struct x86_cpu_id intel_pmc_core_ids[] = {
 -      INTEL_CPU_FAM6(SKYLAKE_L, spt_reg_map),
 -      INTEL_CPU_FAM6(SKYLAKE, spt_reg_map),
 -      INTEL_CPU_FAM6(KABYLAKE_L, spt_reg_map),
 -      INTEL_CPU_FAM6(KABYLAKE, spt_reg_map),
 -      INTEL_CPU_FAM6(CANNONLAKE_L, cnp_reg_map),
 -      INTEL_CPU_FAM6(ICELAKE_L, icl_reg_map),
 -      INTEL_CPU_FAM6(ICELAKE_NNPI, icl_reg_map),
 -      INTEL_CPU_FAM6(COMETLAKE, cnp_reg_map),
 -      INTEL_CPU_FAM6(COMETLAKE_L, cnp_reg_map),
 -      INTEL_CPU_FAM6(TIGERLAKE_L, tgl_reg_map),
 -      INTEL_CPU_FAM6(TIGERLAKE, tgl_reg_map),
 -      INTEL_CPU_FAM6(ATOM_TREMONT, tgl_reg_map),
 -      INTEL_CPU_FAM6(ATOM_TREMONT_L, tgl_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &spt_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &spt_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &spt_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &spt_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L,        &cnp_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &icl_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_NNPI,        &icl_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE,           &cnp_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L,         &cnp_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L,         &tgl_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE,           &tgl_reg_map),
 +      X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT,        &tgl_reg_map),
++      X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_L,      &tgl_reg_map),
        {}
  };
  
@@@ -1047,10 -1321,8 +1321,8 @@@ static inline bool pmc_core_is_s0ix_fai
  static int pmc_core_resume(struct device *dev)
  {
        struct pmc_dev *pmcdev = dev_get_drvdata(dev);
-       const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps;
-       int offset = pmcdev->map->slps0_dbg_offset;
-       const struct pmc_bit_map *map;
-       u32 data;
+       const struct pmc_bit_map **maps = pmcdev->map->lpm_sts;
+       int offset = pmcdev->map->lpm_status_offset;
  
        if (!pmcdev->check_counters)
                return 0;
        /* The real interesting case - S0ix failed - lets ask PMC why. */
        dev_warn(dev, "CPU did not enter SLP_S0!!! (S0ix cnt=%llu)\n",
                 pmcdev->s0ix_counter);
-       while (*maps) {
-               map = *maps;
-               data = pmc_core_reg_read(pmcdev, offset);
-               offset += 4;
-               while (map->name) {
-                       dev_dbg(dev, "SLP_S0_DBG: %-32s\tState: %s\n",
-                               map->name,
-                               data & map->bit_mask ? "Yes" : "No");
-                       map++;
-               }
-               maps++;
-       }
+       if (pmcdev->map->slps0_dbg_maps)
+               pmc_core_slps0_display(pmcdev, dev, NULL);
+       if (pmcdev->map->lpm_sts)
+               pmc_core_lpm_display(pmcdev, dev, NULL, offset, "STATUS", maps);
        return 0;
  }
  
This page took 0.206753 seconds and 4 git commands to generate.