]> Git Repo - J-linux.git/commitdiff
Merge tag 'platform-drivers-x86-v4.19-1' of git://git.infradead.org/linux-platform...
authorLinus Torvalds <[email protected]>
Wed, 22 Aug 2018 21:14:15 +0000 (14:14 -0700)
committerLinus Torvalds <[email protected]>
Wed, 22 Aug 2018 21:14:15 +0000 (14:14 -0700)
Pull x86 platform driver updates from Andy Shevchenko:

 - The driver for Silead touchscreen configurations has been renamed
   from silead_dmi to touchscreen_dmi since it starts supporting other
   touchscreens which require some DMI quirks

   It also gets expanded to cover cases for Chuwi Vi10, ONDA V891W,
   Connect Tablet 9, Onda V820w, and Cube KNote i1101 tablets.

 - Another bunch of changes is related to Mellanox platform code to
   allow user space to communicate with Mellanox for system control and
   monitoring purposes. The driver notifies user on hotplug device
   signal receiving.

 - ASUS WMI drivers recognize lid flip action on UX360, and correctly
   toggles airplane mode LED. In addition the keyboard backlight toggle
   gets support.

 - ThinkPad ACPI driver enables support for calculator key (on at least
   P52). It also has been fixed to support three characters model
   designators, which are used for modern laptops. Earlier the battery,
   marked as BAT1, on ThinkPad laptops has not been configured properly,
   which is fixed. On the opposite the multi-battery configurations now
   probed correctly.

 - Dell SMBIOS driver starts working on some Dell servers which do not
   support token interface. The regression with backlight detection has
   also been fixed. In order to support dock mode on some laptops, Intel
   virtual button driver has been fixed. The last but not least is the
   fix to Intel HID driver due to changes in Dell systems that prevented
   to use power button.

* tag 'platform-drivers-x86-v4.19-1' of git://git.infradead.org/linux-platform-drivers-x86: (47 commits)
  platform/x86: acer-wmi: Silence "unsupported" message a bit
  platform/x86: intel_punit_ipc: fix build errors
  platform/x86: ideapad: Add Y520-15IKBM and Y720-15IKBM to no_hw_rfkill
  platform/x86: asus-nb-wmi: Add keymap entry for lid flip action on UX360
  platform/x86: acer-wmi: refactor function has_cap
  platform/x86: thinkpad_acpi: Fix multi-battery bug
  platform/x86: thinkpad_acpi: extend battery quirk coverage
  platform/x86: touchscreen_dmi: Add info for the Cube KNote i1101 tablet
  platform/x86: mlx-platform: Fix copy-paste error in mlxplat_init()
  platform/x86: mlx-platform: Remove unused define
  platform/x86: mlx-platform: Change mlxreg-io configuration for MSN274x systems
  Documentation/ABI: Add new attribute for mlxreg-io sysfs interfaces
  platform/x86: mlx-platform: Allow mlxreg-io driver activation for more systems
  platform/x86: mlx-platform: Add ASIC hotplug device configuration
  platform/mellanox: mlxreg-hotplug: Add hotplug hwmon uevent notification
  platform/mellanox: mlxreg-hotplug: Improve mechanism of ASIC health discovery
  platform/x86: mlx-platform: Add mlxreg-fan platform driver activation
  platform/x86: dell-laptop: Fix backlight detection
  platform/x86: toshiba_acpi: Fix defined but not used build warnings
  platform/x86: thinkpad_acpi: Support battery quirk
  ...

1  2 
MAINTAINERS
drivers/platform/x86/Kconfig
drivers/platform/x86/Makefile
drivers/platform/x86/asus-wmi.c
drivers/platform/x86/intel_punit_ipc.c
drivers/platform/x86/thinkpad_acpi.c

diff --combined MAINTAINERS
index 24b200d91b305a0cc7cf6f84f0ad40f3992d3f10,df2337389cdf1e5879a527ffba1e3116031aa6e4..efb08d70cc2888e3546f32319a6e68cbb098c7c1
@@@ -199,13 -199,12 +199,13 @@@ F:      drivers/net/ethernet/8390
  
  9P FILE SYSTEM
  M:    Eric Van Hensbergen <[email protected]>
 -M:    Ron Minnich <[email protected]>
  M:    Latchesar Ionkov <[email protected]>
 +M:    Dominique Martinet <[email protected]>
  L:    [email protected]
  W:    http://swik.net/v9fs
  Q:    http://patchwork.kernel.org/project/v9fs-devel/list/
  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:    fs/9p/
@@@ -368,12 -367,6 +368,12 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/acpi/arm64
  
 +ACPI I2C MULTI INSTANTIATE DRIVER
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/i2c-multi-instantiate.c
 +
  ACPI PMIC DRIVERS
  M:    "Rafael J. Wysocki" <[email protected]>
  M:    Len Brown <[email protected]>
@@@ -588,7 -581,7 +588,7 @@@ W: https://www.infradead.org/~dhowells/
  
  AGPGART DRIVER
  M:    David Airlie <[email protected]>
 -T:    git git://people.freedesktop.org/~airlied/linux (part of drm maint)
 +T:    git git://anongit.freedesktop.org/drm/drm
  S:    Maintained
  F:    drivers/char/agp/
  F:    include/linux/agp*
@@@ -735,14 -728,6 +735,14 @@@ S:       Supporte
  F:    drivers/crypto/ccp/
  F:    include/linux/ccp.h
  
 +AMD DISPLAY CORE
 +M:    Harry Wentland <[email protected]>
 +M:    Leo Li <[email protected]>
 +L:    [email protected]
 +T:    git git://people.freedesktop.org/~agd5f/linux
 +S:    Supported
 +F:    drivers/gpu/drm/amd/display/
 +
  AMD FAM15H PROCESSOR POWER MONITORING DRIVER
  M:    Huang Rui <[email protected]>
  L:    [email protected]
@@@ -792,14 -777,6 +792,14 @@@ F:       drivers/gpu/drm/amd/include/vi_struc
  F:    drivers/gpu/drm/amd/include/v9_structs.h
  F:    include/uapi/linux/kfd_ioctl.h
  
 +AMD POWERPLAY
 +M:    Rex Zhu <[email protected]>
 +M:    Evan Quan <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/gpu/drm/amd/powerplay/
 +T:    git git://people.freedesktop.org/~agd5f/linux
 +
  AMD SEATTLE DEVICE TREE SUPPORT
  M:    Brijesh Singh <[email protected]>
  M:    Suravee Suthikulpanit <[email protected]>
@@@ -814,6 -791,11 +814,6 @@@ S:        Supporte
  F:    drivers/net/ethernet/amd/xgbe/
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
  
 -AMS (Apple Motion Sensor) DRIVER
 -M:    Michael Hanselmann <[email protected]>
 -S:    Supported
 -F:    drivers/macintosh/ams/
 -
  ANALOG DEVICES INC AD5686 DRIVER
  M:    Stefan Popa <[email protected]>
  L:    [email protected]
@@@ -822,33 -804,12 +822,33 @@@ S:      Supporte
  F:    drivers/iio/dac/ad5686*
  F:    drivers/iio/dac/ad5696*
  
 +ANALOG DEVICES INC AD5758 DRIVER
 +M:    Stefan Popa <[email protected]>
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/iio/dac/ad5758.c
 +F:    Documentation/devicetree/bindings/iio/dac/ad5758.txt
 +
  ANALOG DEVICES INC AD9389B DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/i2c/ad9389b*
  
 +ANALOG DEVICES INC ADGS1408 DRIVER
 +M:    Mircea Caprioru <[email protected]>
 +S:    Supported
 +F:    drivers/mux/adgs1408.c
 +F:    Documentation/devicetree/bindings/mux/adgs1408.txt
 +
 +ANALOG DEVICES INC ADP5061 DRIVER
 +M:    Stefan Popa <[email protected]>
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/power/supply/adp5061.c
 +
  ANALOG DEVICES INC ADV7180 DRIVER
  M:    Lars-Peter Clausen <[email protected]>
  L:    [email protected]
@@@ -1686,8 -1647,7 +1686,8 @@@ M:      Chunfeng Yun <chunfeng.yun@mediatek.
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    drivers/phy/mediatek/phy-mtk-tphy.c
 +F:    drivers/phy/mediatek/
 +F:    Documentation/devicetree/bindings/phy/phy-mtk-*
  
  ARM/MICREL KS8695 ARCHITECTURE
  M:    Greg Ungerer <[email protected]>
@@@ -2304,7 -2264,6 +2304,7 @@@ L:      [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
  S:    Maintained
  F:    arch/arm64/
 +X:    arch/arm64/boot/dts/
  F:    Documentation/arm64/
  
  AS3645A LED FLASH CONTROLLER DRIVER
  S:    Maintained
  F:    drivers/leds/leds-as3645a.c
  
 +ASAHI KASEI AK7375 LENS VOICE COIL DRIVER
 +M:    Tianshu Qiu <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ak7375.c
 +F:    Documentation/devicetree/bindings/media/i2c/ak7375.txt
 +
  ASAHI KASEI AK8974 DRIVER
  M:    Linus Walleij <[email protected]>
  L:    [email protected]
@@@ -2572,7 -2523,7 +2572,7 @@@ S:      Supporte
  F:    drivers/scsi/esas2r
  
  ATUSB IEEE 802.15.4 RADIO DRIVER
 -M:    Stefan Schmidt <stefan@osg.samsung.com>
 +M:    Stefan Schmidt <stefan@datenfreihafen.org>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ieee802154/atusb.c
@@@ -2596,13 -2547,6 +2596,13 @@@ S:    Maintaine
  F:    drivers/auxdisplay/
  F:    include/linux/cfag12864b.h
  
 +AVIA HX711 ANALOG DIGITAL CONVERTER IIO DRIVER
 +M:    Andreas Klinger <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/adc/avia-hx711.txt
 +F:    drivers/iio/adc/hx711.c
 +
  AX.25 NETWORK LAYER
  M:    Ralf Baechle <[email protected]>
  L:    [email protected]
@@@ -3027,13 -2971,9 +3027,13 @@@ N:    bcm585
  N:    bcm586*
  N:    bcm88312
  N:    hr2
 -F:    arch/arm64/boot/dts/broadcom/ns2*
 +N:    stingray
 +F:    arch/arm64/boot/dts/broadcom/northstar2/*
 +F:    arch/arm64/boot/dts/broadcom/stingray/*
  F:    drivers/clk/bcm/clk-ns*
 +F:    drivers/clk/bcm/clk-sr*
  F:    drivers/pinctrl/bcm/pinctrl-ns*
 +F:    include/dt-bindings/clock/bcm-sr*
  
  BROADCOM KONA GPIO DRIVER
  M:    Ray Jui <[email protected]>
@@@ -3566,30 -3506,10 +3566,30 @@@ F:   drivers/net/ethernet/cisco/enic
  
  CISCO VIC LOW LATENCY NIC DRIVER
  M:    Christian Benvenuti <[email protected]>
 -M:    Dave Goodell <[email protected]>
  S:    Supported
  F:    drivers/infiniband/hw/usnic/
  
 +CIRRUS LOGIC MADERA CODEC DRIVERS
 +M:    Charles Keepax <[email protected]>
 +M:    Richard Fitzgerald <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +T:    git https://github.com/CirrusLogic/linux-drivers.git
 +W:    https://github.com/CirrusLogic/linux-drivers/wiki
 +S:    Supported
 +F:    Documentation/devicetree/bindings/mfd/madera.txt
 +F:    Documentation/devicetree/bindings/pinctrl/cirrus,madera-pinctrl.txt
 +F:    include/linux/mfd/madera/*
 +F:    drivers/gpio/gpio-madera*
 +F:    drivers/mfd/madera*
 +F:    drivers/mfd/cs47l*
 +F:    drivers/pinctrl/cirrus/*
 +
 +CLANG-FORMAT FILE
 +M:    Miguel Ojeda <[email protected]>
 +S:    Maintained
 +F:    .clang-format
 +
  CLEANCACHE API
  M:    Konrad Rzeszutek Wilk <[email protected]>
  L:    [email protected]
  T:    git git://git.infradead.org/users/hch/dma-mapping.git
  W:    http://git.infradead.org/users/hch/dma-mapping.git
  S:    Supported
 -F:    lib/dma-debug.c
 -F:    lib/dma-direct.c
 -F:    lib/dma-noncoherent.c
 -F:    lib/dma-virt.c
 -F:    drivers/base/dma-mapping.c
 -F:    drivers/base/dma-coherent.c
 +F:    kernel/dma/
  F:    include/asm-generic/dma-mapping.h
  F:    include/linux/dma-direct.h
  F:    include/linux/dma-mapping.h
@@@ -4476,12 -4401,6 +4476,12 @@@ X:    Documentation/sp
  X:    Documentation/media
  T:    git git://git.lwn.net/linux.git docs-next
  
 +DOCUMENTATION/ITALIAN
 +M:    Federico Vaga <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/translations/it_IT
 +
  DONGWOON DW9714 LENS VOICE COIL DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -4489,13 -4408,6 +4489,13 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/i2c/dw9714.c
  
 +DONGWOON DW9807 LENS VOICE COIL DRIVER
 +M:    Sakari Ailus <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/dw9807.c
 +
  DOUBLETALK DRIVER
  M:    "James R. Van Zandt" <[email protected]>
  L:    [email protected]
@@@ -4516,8 -4428,7 +4516,8 @@@ S:      Maintaine
  F:    drivers/staging/fsl-dpaa2/ethernet
  
  DPAA2 ETHERNET SWITCH DRIVER
 -M:    Razvan Stefanescu <[email protected]>
 +M:    Ioana Radulescu <[email protected]>
 +M:    Ioana Ciornei <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/staging/fsl-dpaa2/ethsw
@@@ -4550,7 -4461,6 +4550,7 @@@ F:      Documentation/blockdev/drbd
  
  DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS
  M:    Greg Kroah-Hartman <[email protected]>
 +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
@@@ -4721,7 -4631,7 +4721,7 @@@ F:      include/uapi/drm/vmwgfx_drm.
  DRM DRIVERS
  M:    David Airlie <[email protected]>
  L:    [email protected]
 -T:    git git://people.freedesktop.org/~airlied/linux
 +T:    git git://anongit.freedesktop.org/drm/drm
  B:    https://bugs.freedesktop.org/
  C:    irc://chat.freenode.net/dri-devel
  S:    Maintained
@@@ -4974,8 -4884,7 +4974,8 @@@ F:      Documentation/gpu/xen-front.rs
  
  DRM TTM SUBSYSTEM
  M:    Christian Koenig <[email protected]>
 -M:    Roger He <[email protected]>
 +M:    Huang Rui <[email protected]>
 +M:    Junwei Zhang <[email protected]>
  T:    git git://people.freedesktop.org/~agd5f/linux
  S:    Maintained
  L:    [email protected]
@@@ -5147,18 -5056,6 +5147,18 @@@ T:    git git://linuxtv.org/anttip/media_t
  S:    Maintained
  F:    drivers/media/tuners/e4000*
  
 +EARTH_PT1 MEDIA DRIVER
 +M:    Akihiro Tsukada <[email protected]>
 +L:    [email protected]
 +S:    Odd Fixes
 +F:    drivers/media/pci/pt1/
 +
 +EARTH_PT3 MEDIA DRIVER
 +M:    Akihiro Tsukada <[email protected]>
 +L:    [email protected]
 +S:    Odd Fixes
 +F:    drivers/media/pci/pt3/
 +
  EC100 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
  L:    [email protected]
@@@ -5547,7 -5444,6 +5547,7 @@@ F:      drivers/iommu/exynos-iommu.
  
  EZchip NPS platform support
  M:    Vineet Gupta <[email protected]>
 +M:    Ofer Levi <[email protected]>
  S:    Supported
  F:    arch/arc/plat-eznps
  F:    arch/arc/boot/dts/eznps.dts
@@@ -5743,14 -5639,6 +5743,14 @@@ F:    drivers/fpga
  F:    include/linux/fpga/
  W:    http://www.rocketboards.org
  
 +FPGA DFL DRIVERS
 +M:    Wu Hao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/fpga/dfl.txt
 +F:    include/uapi/linux/fpga-dfl.h
 +F:    drivers/fpga/dfl*
 +
  FPU EMULATOR
  M:    Bill Metzenthen <[email protected]>
  W:    http://floatingpoint.sourceforge.net/emulator/index.html
@@@ -5786,7 -5674,7 +5786,7 @@@ F:      drivers/crypto/caam
  F:    Documentation/devicetree/bindings/crypto/fsl-sec4.txt
  
  FREESCALE DIU FRAMEBUFFER DRIVER
 -M:    Timur Tabi <timur@tabi.org>
 +M:    Timur Tabi <timur@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    drivers/video/fbdev/fsl-diu-fb.*
@@@ -5886,7 -5774,7 +5886,7 @@@ S:      Maintaine
  F:    drivers/net/wan/fsl_ucc_hdlc*
  
  FREESCALE QUICC ENGINE UCC UART DRIVER
 -M:    Timur Tabi <timur@tabi.org>
 +M:    Timur Tabi <timur@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    drivers/tty/serial/ucc_uart.c
@@@ -5902,6 -5790,7 +5902,6 @@@ F:      include/linux/fsl
  
  FREESCALE SOC FS_ENET DRIVER
  M:    Pantelis Antoniou <[email protected]>
 -M:    Vitaly Bordug <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -5909,7 -5798,7 +5909,7 @@@ F:      drivers/net/ethernet/freescale/fs_en
  F:    include/linux/fs_enet_pd.h
  
  FREESCALE SOC SOUND DRIVERS
 -M:    Timur Tabi <timur@tabi.org>
 +M:    Timur Tabi <timur@kernel.org>
  M:    Nicolin Chen <[email protected]>
  M:    Xiubo Li <[email protected]>
  R:    Fabio Estevam <[email protected]>
@@@ -5968,14 -5857,6 +5968,14 @@@ F:    fs/crypto
  F:    include/linux/fscrypt*.h
  F:    Documentation/filesystems/fscrypt.rst
  
 +FSI-ATTACHED I2C DRIVER
 +M:    Eddie James <[email protected]>
 +L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-fsi.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-fsi.txt
 +
  FSNOTIFY: FILESYSTEM NOTIFICATION INFRASTRUCTURE
  M:    Jan Kara <[email protected]>
  R:    Amir Goldstein <[email protected]>
@@@ -6041,13 -5922,6 +6041,13 @@@ F:    scripts/gcc-plugin.s
  F:    scripts/Makefile.gcc-plugins
  F:    Documentation/gcc-plugins.txt
  
 +GASKET DRIVER FRAMEWORK
 +M:    Rob Springer <[email protected]>
 +M:    John Joseph <[email protected]>
 +M:    Ben Chan <[email protected]>
 +S:    Maintained
 +F:    drivers/staging/gasket/
 +
  GCOV BASED KERNEL PROFILING
  M:    Peter Oberparleiter <[email protected]>
  S:    Maintained
@@@ -6056,7 -5930,7 +6056,7 @@@ F:      Documentation/dev-tools/gcov.rs
  
  GDB KERNEL DEBUGGING HELPER SCRIPTS
  M:    Jan Kiszka <[email protected]>
 -M:    Kieran Bingham <k[email protected]>
 +M:    Kieran Bingham <k[email protected]>
  S:    Supported
  F:    scripts/gdb/
  
@@@ -6132,12 -6006,6 +6132,12 @@@ F:    drivers/base/power/domain*.
  F:    include/linux/pm_domain.h
  F:    Documentation/devicetree/bindings/power/power_domain.txt
  
 +GENERIC RESISTIVE TOUCHSCREEN ADC DRIVER
 +M:    Eugen Hristev <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/input/touchscreen/resistive-adc-touch.c
 +
  GENERIC UIO DRIVER FOR PCI DEVICES
  M:    "Michael S. Tsirkin" <[email protected]>
  L:    [email protected]
@@@ -6175,14 -6043,6 +6175,14 @@@ F:    Documentation/isdn/README.gigase
  F:    drivers/isdn/gigaset/
  F:    include/uapi/linux/gigaset_dev.h
  
 +GNSS SUBSYSTEM
 +M:    Johan Hovold <[email protected]>
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-class-gnss
 +F:    Documentation/devicetree/bindings/gnss/
 +F:    drivers/gnss/
 +F:    include/linux/gnss.h
 +
  GO7007 MPEG CODEC
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -6281,7 -6141,7 +6281,7 @@@ F:      drivers/staging/greybus/bootrom.
  F:    drivers/staging/greybus/firmware.h
  F:    drivers/staging/greybus/fw-core.c
  F:    drivers/staging/greybus/fw-download.c
 -F:    drivers/staging/greybus/fw-managament.c
 +F:    drivers/staging/greybus/fw-management.c
  F:    drivers/staging/greybus/greybus_authentication.h
  F:    drivers/staging/greybus/greybus_firmware.h
  F:    drivers/staging/greybus/hid.c
@@@ -6290,10 -6150,12 +6290,10 @@@ F:   drivers/staging/greybus/spi.
  F:    drivers/staging/greybus/spilib.c
  F:    drivers/staging/greybus/spilib.h
  
 -GREYBUS LOOPBACK/TIME PROTOCOLS DRIVERS
 +GREYBUS LOOPBACK DRIVER
  M:    Bryan O'Donoghue <[email protected]>
  S:    Maintained
  F:    drivers/staging/greybus/loopback.c
 -F:    drivers/staging/greybus/timesync.c
 -F:    drivers/staging/greybus/timesync_platform.c
  
  GREYBUS PLATFORM DRIVERS
  M:    Vaibhav Hiremath <[email protected]>
@@@ -7047,7 -6909,7 +7047,7 @@@ F:      drivers/clk/clk-versaclock5.
  
  IEEE 802.15.4 SUBSYSTEM
  M:    Alexander Aring <[email protected]>
 -M:    Stefan Schmidt <stefan@osg.samsung.com>
 +M:    Stefan Schmidt <stefan@datenfreihafen.org>
  L:    [email protected]
  W:    http://wpan.cakelab.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan.git
@@@ -7166,7 -7028,7 +7166,7 @@@ M:      Guenter Roeck <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/hwmon/ina209
 -F:    Documentation/devicetree/bindings/i2c/ina209.txt
 +F:    Documentation/devicetree/bindings/hwmon/ina2xx.txt
  F:    drivers/hwmon/ina209.c
  
  INA2XX HARDWARE MONITOR DRIVER
@@@ -7234,7 -7096,6 +7234,7 @@@ F:      include/uapi/linux/input.
  F:    include/uapi/linux/input-event-codes.h
  F:    include/linux/input/
  F:    Documentation/devicetree/bindings/input/
 +F:    Documentation/devicetree/bindings/serio/
  F:    Documentation/input/
  
  INPUT MULTITOUCH (MT) PROTOCOL
@@@ -7384,9 -7245,6 +7384,9 @@@ F:      drivers/dma/iop-adma.
  INTEL IPU3 CSI-2 CIO2 DRIVER
  M:    Yong Zhi <[email protected]>
  M:    Sakari Ailus <[email protected]>
 +M:    Bingbu Cao <[email protected]>
 +R:    Tian Shu Qiu <[email protected]>
 +R:    Jian Xu Zheng <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/pci/intel/ipu3/
@@@ -7492,7 -7350,7 +7492,7 @@@ M:      Megha Dey <[email protected]
  R:    Tim Chen <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    arch/x86/crypto/sha*-mb
 +F:    arch/x86/crypto/sha*-mb/
  F:    crypto/mcryptd.c
  
  INTEL TELEMETRY DRIVER
@@@ -7704,8 -7562,9 +7704,8 @@@ S:      Maintaine
  F:    drivers/firmware/iscsi_ibft*
  
  ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
 -M:    Or Gerlitz <[email protected]>
  M:    Sagi Grimberg <[email protected]>
 -M:    Roi Dayan <roid@mellanox.com>
 +M:    Max Gurtovoy <maxg@mellanox.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.openfabrics.org
@@@ -8126,7 -7985,7 +8126,7 @@@ F:      lib/test_kmod.
  F:    tools/testing/selftests/kmod/
  
  KPROBES
 -M:    Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
 +M:    Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
  M:    Anil S Keshavamurthy <[email protected]>
  M:    "David S. Miller" <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
@@@ -8457,18 -8316,17 +8457,18 @@@ M:   Jade Alglave <[email protected]
  M:    Luc Maranget <[email protected]>
  M:    "Paul E. McKenney" <[email protected]>
  R:    Akira Yokosawa <[email protected]>
 +R:    Daniel Lustig <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
  F:    tools/memory-model/
 +F:    Documentation/atomic_bitops.txt
 +F:    Documentation/atomic_t.txt
 +F:    Documentation/core-api/atomic_ops.rst
 +F:    Documentation/core-api/refcount-vs-atomic.rst
  F:    Documentation/memory-barriers.txt
  
 -LINUX SECURITY MODULE (LSM) FRAMEWORK
 -M:    Chris Wright <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -
  LIS3LV02D ACCELEROMETER DRIVER
  M:    Eric Piel <[email protected]>
  S:    Maintained
@@@ -8771,7 -8629,7 +8771,7 @@@ MARVELL MWIFIEX WIRELESS DRIVE
  M:    Amitkumar Karwar <[email protected]>
  M:    Nishant Sarmukadam <[email protected]>
  M:    Ganapathi Bhat <[email protected]>
 -M:    Xinming Hu <huxm@marvell.com>
 +M:    Xinming Hu <huxinming820@gmail.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/wireless/marvell/mwifiex/
@@@ -9098,14 -8956,6 +9098,14 @@@ T:    git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/dvb-frontends/stv6111*
  
 +MEDIA DRIVERS FOR STM32 - DCMI
 +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:    drivers/media/platform/stm32/stm32-dcmi.c
 +
  MEDIA DRIVERS FOR NVIDIA TEGRA - VDE
  M:    Dmitry Osipenko <[email protected]>
  L:    [email protected]
@@@ -9137,14 -8987,6 +9137,14 @@@ F:    include/uapi/linux/meye.
  F:    include/uapi/linux/ivtv*
  F:    include/uapi/linux/uvcvideo.h
  
 +MEDIATEK BLUETOOTH DRIVER
 +M:    Sean Wang <[email protected]>
 +L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/mediatek-bluetooth.txt
 +F:    drivers/bluetooth/btmtkuart.c
 +
  MEDIATEK CIR DRIVER
  M:    Sean Wang <[email protected]>
  S:    Maintained
@@@ -9233,7 -9075,7 +9233,7 @@@ S:      Maintaine
  F:    drivers/usb/mtu3/
  
  MEGACHIPS STDPXXXX-GE-B850V3-FW LVDS/DP++ BRIDGES
 -M:    Peter Senna Tschudin <peter.senna@collabora.com>
 +M:    Peter Senna Tschudin <peter.senna@gmail.com>
  M:    Martin Donnelly <[email protected]>
  M:    Martyn Welch <[email protected]>
  S:    Maintained
@@@ -9317,7 -9159,6 +9317,7 @@@ S:      Supporte
  W:    http://www.mellanox.com
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
  F:    drivers/net/ethernet/mellanox/mlxsw/
 +F:    tools/testing/selftests/drivers/net/mlxsw/
  
  MELLANOX FIRMWARE FLASH LIBRARY (mlxfw)
  M:    [email protected]
@@@ -9458,12 -9299,6 +9458,12 @@@ F:    drivers/leds/leds-menf21bmc.
  F:    drivers/hwmon/menf21bmc_hwmon.c
  F:    Documentation/hwmon/menf21bmc
  
 +MEN Z069 WATCHDOG DRIVER
 +M:    Johannes Thumshirn <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/watchdog/menz069_wdt.c
 +
  MESON AO CEC DRIVER FOR AMLOGIC SOCS
  M:    Neil Armstrong <[email protected]>
  L:    [email protected]
@@@ -9511,6 -9346,7 +9511,6 @@@ F:      drivers/media/platform/atmel/atmel-i
  F:    devicetree/bindings/media/atmel-isc.txt
  
  MICROCHIP / ATMEL NAND DRIVER
 -M:    Wenyou Yang <[email protected]>
  M:    Josh Wu <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -9802,14 -9638,6 +9802,14 @@@ F:    Documentation/devicetree/bindings/me
  F:    drivers/media/i2c/mt9v032.c
  F:    include/media/i2c/mt9v032.h
  
 +MT9V111 APTINA CAMERA SENSOR
 +M:    Jacopo Mondi <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
 +F:    drivers/media/i2c/mt9v111.c
 +
  MULTIFUNCTION DEVICES (MFD)
  M:    Lee Jones <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git
  S:    Maintained
  F:    drivers/usb/musb/
  
 +MXL301RF MEDIA DRIVER
 +M:    Akihiro Tsukada <[email protected]>
 +L:    [email protected]
 +S:    Odd Fixes
 +F:    drivers/media/tuners/mxl301rf*
 +
  MXL5007T MEDIA DRIVER
  M:    Michael Krufky <[email protected]>
  L:    [email protected]
@@@ -9928,10 -9750,11 +9928,10 @@@ F:   drivers/scsi/mac_scsi.
  F:    drivers/scsi/sun3_scsi.*
  F:    drivers/scsi/sun3_scsi_vme.c
  
 -NCR DUAL 700 SCSI DRIVER (MICROCHANNEL)
 -M:    "James E.J. Bottomley" <[email protected]>
 -L:    [email protected]
 +NCSI LIBRARY:
 +M:    Samuel Mendoza-Jonas <[email protected]>
  S:    Maintained
 -F:    drivers/scsi/NCR_D700.*
 +F:    net/ncsi/
  
  NCT6775 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
@@@ -10059,7 -9882,6 +10059,7 @@@ M:    Andrew Lunn <[email protected]
  M:    Vivien Didelot <[email protected]>
  M:    Florian Fainelli <[email protected]>
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/
  F:    net/dsa/
  F:    include/net/dsa.h
  F:    include/linux/dsa/
@@@ -10386,13 -10208,11 +10386,13 @@@ F:        sound/soc/codecs/sgtl5000
  
  NXP TDA998X DRM DRIVER
  M:    Russell King <[email protected]>
 -S:    Supported
 +S:    Maintained
  T:    git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-tda998x-devel
  T:    git git://git.armlinux.org.uk/~rmk/linux-arm.git drm-tda998x-fixes
  F:    drivers/gpu/drm/i2c/tda998x_drv.c
  F:    include/drm/i2c/tda998x.h
 +F:    include/dt-bindings/display/tda998x.h
 +K:    "nxp,tda998x"
  
  NXP TFA9879 DRIVER
  M:    Peter Rosin <[email protected]>
@@@ -10636,14 -10456,6 +10636,14 @@@ T: git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/i2c/ov13858.c
  
 +OMNIVISION OV2680 SENSOR DRIVER
 +M:    Rui Miguel Silva <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov2680.c
 +F:    Documentation/devicetree/bindings/media/i2c/ov2680.txt
 +
  OMNIVISION OV2685 SENSOR DRIVER
  M:    Shunqian Zheng <[email protected]>
  L:    [email protected]
@@@ -11371,13 -11183,6 +11371,13 @@@ S: Maintaine
  F:    include/linux/personality.h
  F:    include/uapi/linux/personality.h
  
 +PHOENIX RC FLIGHT CONTROLLER ADAPTER
 +M:    Marcus Folkesson <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/input/devices/pxrc.rst
 +F:    drivers/input/joystick/pxrc.c
 +
  PHONET PROTOCOL
  M:    Remi Denis-Courmont <[email protected]>
  S:    Supported
@@@ -11444,7 -11249,7 +11444,7 @@@ F:   Documentation/devicetree/bindings/pi
  
  PIN CONTROLLER - INTEL
  M:    Mika Westerberg <[email protected]>
 -M:    Heikki Krogerus <heikki.krogerus@linux.intel.com>
 +M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  S:    Maintained
  F:    drivers/pinctrl/intel/
  
@@@ -11671,15 -11476,6 +11671,15 @@@ W: http://wireless.kernel.org/en/users/
  S:    Obsolete
  F:    drivers/net/wireless/intersil/prism54/
  
 +PROC FILESYSTEM
 +R:    Alexey Dobriyan <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    fs/proc/
 +F:    include/linux/proc_fs.h
 +F:    tools/testing/selftests/proc/
 +
  PROC SYSCTL
  M:    "Luis R. Rodriguez" <[email protected]>
  M:    Kees Cook <[email protected]>
  S:    Supported
  F:    drivers/net/ethernet/qlogic/qlge/
  
 +QM1D1B0004 MEDIA DRIVER
 +M:    Akihiro Tsukada <[email protected]>
 +L:    [email protected]
 +S:    Odd Fixes
 +F:    drivers/media/tuners/qm1d1b0004*
 +
 +QM1D1C0042 MEDIA DRIVER
 +M:    Akihiro Tsukada <[email protected]>
 +L:    [email protected]
 +S:    Odd Fixes
 +F:    drivers/media/tuners/qm1d1c0042*
 +
  QNX4 FILESYSTEM
  M:    Anders Larsen <[email protected]>
  W:    http://www.alarsen.net/linux/qnx4fs/
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/qcom,camss.txt
  F:    Documentation/media/v4l-drivers/qcom_camss.rst
 -F:    drivers/media/platform/qcom/camss-8x16/
 +F:    drivers/media/platform/qcom/camss/
  
  QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096
  M:  Ilia Lin <[email protected]>
@@@ -12024,19 -11808,11 +12024,19 @@@ F:  Documentation/devicetree/bindings/o
  F:  drivers/cpufreq/qcom-cpufreq-kryo.c
  
  QUALCOMM EMAC GIGABIT ETHERNET DRIVER
 -M:    Timur Tabi <timur@codeaurora.org>
 +M:    Timur Tabi <timur@kernel.org>
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  F:    drivers/net/ethernet/qualcomm/emac/
  
 +QUALCOMM GENERIC INTERFACE I2C DRIVER
 +M:    Alok Chauhan <[email protected]>
 +M:    Karthikeyan Ramasubramanian <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-qcom-geni.c
 +
  QUALCOMM HEXAGON ARCHITECTURE
  M:    Richard Kuo <[email protected]>
  L:    [email protected]
@@@ -12045,7 -11821,7 +12045,7 @@@ S:   Supporte
  F:    arch/hexagon/
  
  QUALCOMM HIDMA DRIVER
 -M:    Sinan Kaya <okaya@codeaurora.org>
 +M:    Sinan Kaya <okaya@kernel.org>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected]
@@@ -12245,9 -12021,9 +12245,9 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/RCU/
  X:    Documentation/RCU/torture.txt
  F:    include/linux/rcu*
 -X:    include/linux/srcu.h
 +X:    include/linux/srcu*.h
  F:    kernel/rcu/
 -X:    kernel/torture.c
 +X:    kernel/rcu/srcu*.c
  
  REAL TIME CLOCK (RTC) SUBSYSTEM
  M:    Alessandro Zummo <[email protected]>
@@@ -12272,13 -12048,6 +12272,13 @@@ S: Maintaine
  F:    sound/soc/codecs/rt*
  F:    include/sound/rt*.h
  
 +REALTEK RTL83xx SMI DSA ROUTER CHIPS
 +M:    Linus Walleij <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/realtek-smi.txt
 +F:    drivers/net/dsa/realtek-smi*
 +F:    drivers/net/dsa/rtl83*
 +
  REGISTER MAP ABSTRACTION
  M:    Mark Brown <[email protected]>
  L:    [email protected]
@@@ -12386,8 -12155,6 +12386,8 @@@ S:   Maintaine
  F:    Documentation/rfkill.txt
  F:    Documentation/ABI/stable/sysfs-class-rfkill
  F:    net/rfkill/
 +F:    include/linux/rfkill.h
 +F:    include/uapi/linux/rfkill.h
  
  RHASHTABLE
  M:    Thomas Graf <[email protected]>
@@@ -12395,9 -12162,7 +12395,9 @@@ M:   Herbert Xu <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    lib/rhashtable.c
 +F:    lib/test_rhashtable.c
  F:    include/linux/rhashtable.h
 +F:    include/linux/rhashtable-types.h
  
  RICOH R5C592 MEMORYSTICK DRIVER
  M:    Maxim Levitsky <[email protected]>
@@@ -12619,6 -12384,7 +12619,6 @@@ F:   drivers/pci/hotplug/s390_pci_hpc.
  
  S390 VFIO-CCW DRIVER
  M:    Cornelia Huck <[email protected]>
 -M:    Dong Jia Shi <[email protected]>
  M:    Halil Pasic <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -12855,21 -12621,15 +12855,21 @@@ S:        Maintaine
  F:    drivers/scsi/sr*
  
  SCSI RDMA PROTOCOL (SRP) INITIATOR
 -M:    Bart Van Assche <b[email protected]>
 +M:    Bart Van Assche <b[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://www.openfabrics.org
  Q:    http://patchwork.kernel.org/project/linux-rdma/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dad/srp-initiator.git
  F:    drivers/infiniband/ulp/srp/
  F:    include/scsi/srp.h
  
 +SCSI RDMA PROTOCOL (SRP) TARGET
 +M:    Bart Van Assche <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +Q:    http://patchwork.kernel.org/project/linux-rdma/list/
 +F:    drivers/infiniband/ulp/srpt/
 +
  SCSI SG DRIVER
  M:    Doug Gilbert <[email protected]>
  L:    [email protected]
@@@ -12968,13 -12728,6 +12968,13 @@@ S: Maintaine
  F:    drivers/mmc/host/sdhci*
  F:    include/linux/mmc/sdhci*
  
 +SYNOPSYS SDHCI COMPLIANT DWC MSHC DRIVER
 +M:    Prabu Thangamuthu <[email protected]>
 +M:    Manjunath M B <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci-pci-dwc-mshc.c
 +
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
  M:    Ben Dooks <[email protected]>
  M:    Jaehoon Chung <[email protected]>
@@@ -13016,7 -12769,6 +13016,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  W:    http://kernsec.org/
  S:    Supported
  F:    security/
 +X:    security/selinux/
  
  SELINUX SECURITY MODULE
  M:    Paul Moore <[email protected]>
@@@ -13093,14 -12845,6 +13093,14 @@@ W: http://www.ibm.com/developerworks/li
  S:    Supported
  F:    net/smc/
  
 +SHARP RJ54N1CB0C SENSOR DRIVER
 +M:    Jacopo Mondi <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Odd fixes
 +F:    drivers/media/i2c/rj54n1cb0c.c
 +F:    include/media/i2c/rj54n1cb0c.h
 +
  SH_VEU V4L2 MEM2MEM DRIVER
  L:    [email protected]
  S:    Orphan
  L:    [email protected]
  S:    Maintained
  F:    drivers/input/touchscreen/silead.c
- F:    drivers/platform/x86/silead_dmi.c
+ F:    drivers/platform/x86/touchscreen_dmi.c
  
  SILICON MOTION SM712 FRAME BUFFER DRIVER
  M:    Sudip Mukherjee <[email protected]>
  W:    http://www.rdrop.com/users/paulmck/RCU/
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
 -F:    include/linux/srcu.h
 -F:    kernel/rcu/srcu.c
 +F:    include/linux/srcu*.h
 +F:    kernel/rcu/srcu*.c
  
  SERIAL LOW-POWER INTER-CHIP MEDIA BUS (SLIMbus)
  M:    Srinivas Kandagatla <[email protected]>
@@@ -13727,13 -13471,6 +13727,13 @@@ M: H Hartley Sweeten <hsweeten@visionen
  S:    Odd Fixes
  F:    drivers/staging/comedi/
  
 +STAGING - EROFS FILE SYSTEM
 +M:    Gao Xiang <[email protected]>
 +M:    Chao Yu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/staging/erofs/
 +
  STAGING - FLARION FT1000 DRIVERS
  M:    Marek Belisko <[email protected]>
  S:    Odd Fixes
  S:    Maintained
  F:    drivers/block/skd*[ch]
  
 +STI AUDIO (ASoC) DRIVERS
 +M:    Arnaud Pouliquen <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt
 +F:    sound/soc/sti/
 +
  STI CEC DRIVER
  M:    Benjamin Gaignard <[email protected]>
  S:    Maintained
@@@ -13840,14 -13570,6 +13840,14 @@@ T: git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/usb/stk1160/
  
 +STM32 AUDIO (ASoC) DRIVERS
 +M:    Olivier Moysan <[email protected]>
 +M:    Arnaud Pouliquen <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/st,stm32-*.txt
 +F:    sound/soc/stm/
 +
  STM32 TIMER/LPTIMER DRIVERS
  M:    Fabrice Gasnier <[email protected]>
  S:    Maintained
@@@ -13926,7 -13648,7 +13926,7 @@@ M:   Konrad Rzeszutek Wilk <konrad.wilk@o
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb.git
  S:    Supported
 -F:    lib/swiotlb.c
 +F:    kernel/dma/swiotlb.c
  F:    arch/*/kernel/pci-swiotlb.c
  F:    include/linux/swiotlb.h
  
@@@ -14124,12 -13846,6 +14124,12 @@@ F: include/uapi/linux/tc_act
  F:    include/uapi/linux/tc_ematch/
  F:    net/sched/
  
 +TC90522 MEDIA DRIVER
 +M:    Akihiro Tsukada <[email protected]>
 +L:    [email protected]
 +S:    Odd Fixes
 +F:    drivers/media/dvb-frontends/tc90522*
 +
  TCP LOW PRIORITY MODULE
  M:    "Wong Hoi Sing, Edison" <[email protected]>
  M:    "Hung Hing Lun, Mike" <[email protected]>
@@@ -14324,13 -14040,6 +14324,13 @@@ M: Laxman Dewangan <[email protected]
  S:    Supported
  F:    drivers/input/keyboard/tegra-kbc.c
  
 +TEGRA NAND DRIVER
 +M:    Stefan Agner <[email protected]>
 +M:    Lucas Stach <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mtd/nvidia-tegra20-nand.txt
 +F:    drivers/mtd/nand/raw/tegra_nand.c
 +
  TEGRA PWM DRIVER
  M:    Thierry Reding <[email protected]>
  S:    Supported
@@@ -14711,7 -14420,6 +14711,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/RCU/torture.txt
  F:    kernel/torture.c
  F:    kernel/rcu/rcutorture.c
 +F:    kernel/rcu/rcuperf.c
  F:    kernel/locking/locktorture.c
  
  TOSHIBA ACPI EXTRAS DRIVER
  S:    Maintained
  F:    drivers/usb/typec/mux/pi3usb30532.c
  
 -USB TYPEC SUBSYSTEM
 +USB TYPEC CLASS
  M:    Heikki Krogerus <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -15242,15 -14950,6 +15242,15 @@@ 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]>
 +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
 +
  USB UHCI DRIVER
  M:    Alan Stern <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/usb/gadget/function/*uvc*
  F:    drivers/usb/gadget/legacy/webcam.c
 +F:    include/uapi/linux/usb/g_uvc.h
  
  USB WIRELESS RNDIS DRIVER (rndis_wlan)
  M:    Jussi Kivilinna <[email protected]>
  S:    Maintained
  F:    drivers/net/ethernet/via/via-velocity.*
  
 +VICODEC VIRTUAL CODEC DRIVER
 +M:    Hans Verkuil <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +W:    https://linuxtv.org
 +S:    Maintained
 +F:    drivers/media/platform/vicodec/*
 +
  VIDEO MULTIPLEXER DRIVER
  M:    Philipp Zabel <[email protected]>
  L:    [email protected]
@@@ -15604,7 -15294,7 +15604,7 @@@ F:   include/linux/vme
  
  VMWARE BALLOON DRIVER
  M:    Xavier Deguillard <[email protected]>
 -M:    Philip Moltmann <moltmann@vmware.com>
 +M:    Nadav Amit <namit@vmware.com>
  M:    "VMware, Inc." <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -15696,7 -15386,6 +15696,7 @@@ F:   drivers/mmc/host/vub300.
  W1 DALLAS'S 1-WIRE BUS
  M:    Evgeniy Polyakov <[email protected]>
  S:    Maintained
 +F:    Documentation/devicetree/bindings/w1/
  F:    Documentation/w1/
  F:    drivers/w1/
  F:    include/linux/w1.h
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
  S:    Maintained
 +F:    Documentation/devicetree/bindings/x86/
  F:    Documentation/x86/
  F:    arch/x86/
  
 +X86 ENTRY CODE
 +M:    Andy Lutomirski <[email protected]>
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/asm
 +S:    Maintained
 +F:    arch/x86/entry/
 +
  X86 MCE INFRASTRUCTURE
  M:    Tony Luck <[email protected]>
  M:    Borislav Petkov <[email protected]>
@@@ -15916,7 -15597,7 +15916,7 @@@ F:   drivers/platform/x86
  F:    drivers/platform/olpc/
  
  X86 VDSO
 -M:    Andy Lutomirski <luto@amacapital.net>
 +M:    Andy Lutomirski <luto@kernel.org>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/vdso
  S:    Maintained
index 107d336453b2c3d15d804ba75ad843dc765a2e93,78965cd39a26bcc7db7e0dfde79efa7ae4de502d..0c1aa6c314f50a94c55aada1ae314a9edf24ea80
@@@ -1196,16 -1196,16 +1196,16 @@@ config INTEL_TURBO_MAX_
          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 SILEAD_DMI
-       bool "Tablets with Silead touchscreens"
+ config TOUCHSCREEN_DMI
+       bool "DMI based touchscreen configuration info"
        depends on ACPI && DMI && I2C=y && TOUCHSCREEN_SILEAD
        ---help---
-         Certain ACPI based tablets with Silead touchscreens do not have
-         enough data in ACPI tables for the touchscreen driver to handle
-         the touchscreen properly, as OEMs expected the data to be baked
-         into the tablet model specific version of the driver shipped
-         with the OS-image for the device. This option supplies the missing
-         information. Enable this for x86 tablets with Silead touchscreens.
+         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_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 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.
 +
  endif # X86_PLATFORM_DEVICES
  
  config PMC_ATOM
index 50dc8f2809144cf23491b1ee473e874b7decc00f,8d9477114fb580c270b747038d9a42f899cd26c3..e6d1becf81ce8c6bd526e196b8c167576d0f5c6f
@@@ -78,7 -78,7 +78,7 @@@ obj-$(CONFIG_INTEL_SMARTCONNECT)      += int
  obj-$(CONFIG_PVPANIC)           += pvpanic.o
  obj-$(CONFIG_ALIENWARE_WMI)   += alienware-wmi.o
  obj-$(CONFIG_INTEL_PMC_IPC)   += intel_pmc_ipc.o
- obj-$(CONFIG_SILEAD_DMI)      += silead_dmi.o
+ obj-$(CONFIG_TOUCHSCREEN_DMI) += touchscreen_dmi.o
  obj-$(CONFIG_SURFACE_PRO3_BUTTON)     += surfacepro3_button.o
  obj-$(CONFIG_SURFACE_3_BUTTON)        += surface3_button.o
  obj-$(CONFIG_INTEL_PUNIT_IPC)  += intel_punit_ipc.o
@@@ -91,4 -91,3 +91,4 @@@ obj-$(CONFIG_PMC_ATOM)                += pmc_atom.
  obj-$(CONFIG_MLX_PLATFORM)    += mlx-platform.o
  obj-$(CONFIG_INTEL_TURBO_MAX_3) += intel_turbo_max_3.o
  obj-$(CONFIG_INTEL_CHTDC_TI_PWRBTN)   += intel_chtdc_ti_pwrbtn.o
 +obj-$(CONFIG_I2C_MULTI_INSTANTIATE)   += i2c-multi-instantiate.o
index d67f32a29bb4b374b1ef22ef6db7ef417b4fb562,34dcc1aac4ea7c2dd5935a0cc16a5152224ddb8a..2d6e272315a82eae024c0fe3f242f097c2787f02
@@@ -67,6 -67,7 +67,7 @@@ MODULE_LICENSE("GPL")
  #define NOTIFY_BRNDOWN_MAX            0x2e
  #define NOTIFY_KBD_BRTUP              0xc4
  #define NOTIFY_KBD_BRTDWN             0xc5
+ #define NOTIFY_KBD_BRTTOGGLE          0xc7
  
  /* WMI Methods */
  #define ASUS_WMI_METHODID_SPEC                0x43455053 /* BIOS SPECification */
@@@ -470,6 -471,7 +471,7 @@@ static void kbd_led_update(struct work_
                ctrl_param = 0x80 | (asus->kbd_led_wk & 0x7F);
  
        asus_wmi_set_devstate(ASUS_WMI_DEVID_KBD_BACKLIGHT, ctrl_param, NULL);
+       led_classdev_notify_brightness_hw_changed(&asus->kbd_led, asus->kbd_led_wk);
  }
  
  static int kbd_led_read(struct asus_wmi *asus, int *level, int *env)
        return retval;
  }
  
- static void kbd_led_set(struct led_classdev *led_cdev,
-                       enum led_brightness value)
+ static void do_kbd_led_set(struct led_classdev *led_cdev, int value)
  {
        struct asus_wmi *asus;
+       int max_level;
  
        asus = container_of(led_cdev, struct asus_wmi, kbd_led);
+       max_level = asus->kbd_led.max_brightness;
  
-       if (value > asus->kbd_led.max_brightness)
-               value = asus->kbd_led.max_brightness;
+       if (value > max_level)
+               value = max_level;
        else if (value < 0)
                value = 0;
  
        queue_work(asus->led_workqueue, &asus->kbd_led_work);
  }
  
+ static void kbd_led_set(struct led_classdev *led_cdev,
+                       enum led_brightness value)
+ {
+       do_kbd_led_set(led_cdev, value);
+ }
  static enum led_brightness kbd_led_get(struct led_classdev *led_cdev)
  {
        struct asus_wmi *asus;
@@@ -666,6 -675,7 +675,7 @@@ static int asus_wmi_led_init(struct asu
  
                asus->kbd_led_wk = led_val;
                asus->kbd_led.name = "asus::kbd_backlight";
+               asus->kbd_led.flags = LED_BRIGHT_HW_CHANGED;
                asus->kbd_led.brightness_set = kbd_led_set;
                asus->kbd_led.brightness_get = kbd_led_get;
                asus->kbd_led.max_brightness = 3;
@@@ -858,6 -868,12 +868,6 @@@ static int asus_get_adapter_status(stru
        return 0;
  }
  
 -static void asus_cleanup_pci_hotplug(struct hotplug_slot *hotplug_slot)
 -{
 -      kfree(hotplug_slot->info);
 -      kfree(hotplug_slot);
 -}
 -
  static struct hotplug_slot_ops asus_hotplug_slot_ops = {
        .owner = THIS_MODULE,
        .get_adapter_status = asus_get_adapter_status,
@@@ -899,6 -915,7 +909,6 @@@ static int asus_setup_pci_hotplug(struc
                goto error_info;
  
        asus->hotplug_slot->private = asus;
 -      asus->hotplug_slot->release = &asus_cleanup_pci_hotplug;
        asus->hotplug_slot->ops = &asus_hotplug_slot_ops;
        asus_get_adapter_status(asus->hotplug_slot,
                                &asus->hotplug_slot->info->adapter_status);
@@@ -1044,11 -1061,8 +1054,11 @@@ static void asus_wmi_rfkill_exit(struc
         * asus_unregister_rfkill_notifier()
         */
        asus_rfkill_hotplug(asus);
 -      if (asus->hotplug_slot)
 +      if (asus->hotplug_slot) {
                pci_hp_deregister(asus->hotplug_slot);
 +              kfree(asus->hotplug_slot->info);
 +              kfree(asus->hotplug_slot);
 +      }
        if (asus->hotplug_workqueue)
                destroy_workqueue(asus->hotplug_workqueue);
  
@@@ -1754,6 -1768,22 +1764,22 @@@ static void asus_wmi_notify(u32 value, 
                }
        }
  
+       if (code == NOTIFY_KBD_BRTUP) {
+               do_kbd_led_set(&asus->kbd_led, asus->kbd_led_wk + 1);
+               goto exit;
+       }
+       if (code == NOTIFY_KBD_BRTDWN) {
+               do_kbd_led_set(&asus->kbd_led, asus->kbd_led_wk - 1);
+               goto exit;
+       }
+       if (code == NOTIFY_KBD_BRTTOGGLE) {
+               if (asus->kbd_led_wk == asus->kbd_led.max_brightness)
+                       do_kbd_led_set(&asus->kbd_led, 0);
+               else
+                       do_kbd_led_set(&asus->kbd_led, asus->kbd_led_wk + 1);
+               goto exit;
+       }
        if (is_display_toggle(code) &&
            asus->driver->quirks->no_display_toggle)
                goto exit;
index f1afc0ebbc68939f4ff2dc62df5248d583e038ce,b7dfe06261f1e6441644aebae16f8d2d6163b842..2efeab650345c044371aa7c56624e4d650ea7c93
   */
  
  #include <linux/module.h>
 +#include <linux/mod_devicetable.h>
  #include <linux/acpi.h>
  #include <linux/delay.h>
  #include <linux/bitops.h>
  #include <linux/device.h>
  #include <linux/interrupt.h>
+ #include <linux/io.h>
  #include <linux/platform_device.h>
  #include <asm/intel_punit_ipc.h>
  
index d556e95c532c09221bd7db6a6ebd3c577396b409,0a118f462aa4b65ac62ed024e6f755d3b4b70551..fde08a997557fed3aeef16b3729ef1b8c85efe75
@@@ -57,7 -57,6 +57,7 @@@
  #include <linux/list.h>
  #include <linux/mutex.h>
  #include <linux/sched.h>
 +#include <linux/sched/signal.h>
  #include <linux/kthread.h>
  #include <linux/freezer.h>
  #include <linux/delay.h>
@@@ -336,6 -335,7 +336,7 @@@ static struct 
        u32 second_fan:1;
        u32 beep_needs_two_args:1;
        u32 mixer_no_level_control:1;
+       u32 battery_force_primary:1;
        u32 input_device_registered:1;
        u32 platform_drv_registered:1;
        u32 platform_drv_attrs_registered:1;
        u32 sensors_pdev_attrs_registered:1;
        u32 hotkey_poll_active:1;
        u32 has_adaptive_kbd:1;
-       u32 battery:1;
  } tp_features;
  
  static struct {
@@@ -359,9 -358,9 +359,9 @@@ struct thinkpad_id_data 
        char *bios_version_str; /* Something like 1ZET51WW (1.03z) */
        char *ec_version_str;   /* Something like 1ZHT51WW-1.04a */
  
-       u16 bios_model;         /* 1Y = 0x5931, 0 = unknown */
-       u16 ec_model;
-       u16 bios_release;       /* 1ZETK1WW = 0x314b, 0 = unknown */
+       u32 bios_model;         /* 1Y = 0x3159, 0 = unknown */
+       u32 ec_model;
+       u16 bios_release;       /* 1ZETK1WW = 0x4b31, 0 = unknown */
        u16 ec_release;
  
        char *model_str;        /* ThinkPad T43 */
@@@ -445,17 -444,20 +445,20 @@@ do {                                                                    
  /*
   * Quirk handling helpers
   *
-  * ThinkPad IDs and versions seen in the field so far
-  * are two-characters from the set [0-9A-Z], i.e. base 36.
+  * ThinkPad IDs and versions seen in the field so far are
+  * two or three characters from the set [0-9A-Z], i.e. base 36.
   *
   * We use values well outside that range as specials.
   */
  
- #define TPACPI_MATCH_ANY              0xffffU
+ #define TPACPI_MATCH_ANY              0xffffffffU
+ #define TPACPI_MATCH_ANY_VERSION      0xffffU
  #define TPACPI_MATCH_UNKNOWN          0U
  
- /* TPID('1', 'Y') == 0x5931 */
- #define TPID(__c1, __c2) (((__c2) << 8) | (__c1))
+ /* TPID('1', 'Y') == 0x3159 */
+ #define TPID(__c1, __c2)      (((__c1) << 8) | (__c2))
+ #define TPID3(__c1, __c2, __c3)       (((__c1) << 16) | ((__c2) << 8) | (__c3))
+ #define TPVER TPID
  
  #define TPACPI_Q_IBM(__id1, __id2, __quirk)   \
        { .vendor = PCI_VENDOR_ID_IBM,          \
          .ec = TPACPI_MATCH_ANY,               \
          .quirks = (__quirk) }
  
+ #define TPACPI_Q_LNV3(__id1, __id2, __id3, __quirk) \
+       { .vendor = PCI_VENDOR_ID_LENOVO,       \
+         .bios = TPID3(__id1, __id2, __id3),   \
+         .ec = TPACPI_MATCH_ANY,               \
+         .quirks = (__quirk) }
  #define TPACPI_QEC_LNV(__id1, __id2, __quirk) \
        { .vendor = PCI_VENDOR_ID_LENOVO,       \
          .bios = TPACPI_MATCH_ANY,             \
  
  struct tpacpi_quirk {
        unsigned int vendor;
-       u16 bios;
-       u16 ec;
+       u32 bios;
+       u32 ec;
        unsigned long quirks;
  };
  
@@@ -1648,16 -1656,16 +1657,16 @@@ static void tpacpi_remove_driver_attrib
        { .vendor       = (__v),                        \
          .bios         = TPID(__id1, __id2),           \
          .ec           = TPACPI_MATCH_ANY,             \
-         .quirks       = TPACPI_MATCH_ANY << 16        \
-                         | (__bv1) << 8 | (__bv2) }
+         .quirks       = TPACPI_MATCH_ANY_VERSION << 16 \
+                         | TPVER(__bv1, __bv2) }
  
  #define TPV_Q_X(__v, __bid1, __bid2, __bv1, __bv2,    \
                __eid, __ev1, __ev2)                    \
        { .vendor       = (__v),                        \
          .bios         = TPID(__bid1, __bid2),         \
          .ec           = __eid,                        \
-         .quirks       = (__ev1) << 24 | (__ev2) << 16 \
-                         | (__bv1) << 8 | (__bv2) }
+         .quirks       = TPVER(__ev1, __ev2) << 16     \
+                         | TPVER(__bv1, __bv2) }
  
  #define TPV_QI0(__id1, __id2, __bv1, __bv2) \
        TPV_Q(PCI_VENDOR_ID_IBM, __id1, __id2, __bv1, __bv2)
@@@ -1799,7 -1807,7 +1808,7 @@@ static void __init tpacpi_check_outdate
        /* note that unknown versions are set to 0x0000 and we use that */
        if ((bios_version > thinkpad_id.bios_release) ||
            (ec_version > thinkpad_id.ec_release &&
-                               ec_version != TPACPI_MATCH_ANY)) {
+                               ec_version != TPACPI_MATCH_ANY_VERSION)) {
                /*
                 * The changelogs would let us track down the exact
                 * reason, but it is just too much of a pain to track
@@@ -1929,7 -1937,7 +1938,7 @@@ enum {  /* hot key scan codes (derived f
        /* first new observed key (star, favorites) is 0x1311 */
        TP_ACPI_HOTKEYSCAN_STAR = 69,
        TP_ACPI_HOTKEYSCAN_CLIPPING_TOOL2,
-       TP_ACPI_HOTKEYSCAN_UNK25,
+       TP_ACPI_HOTKEYSCAN_CALCULATOR,
        TP_ACPI_HOTKEYSCAN_BLUETOOTH,
        TP_ACPI_HOTKEYSCAN_KEYBOARD,
  
@@@ -3450,7 -3458,7 +3459,7 @@@ static int __init hotkey_init(struct ib
  
                KEY_FAVORITES,       /* Favorite app, 0x311 */
                KEY_RESERVED,        /* Clipping tool */
-               KEY_RESERVED,
+               KEY_CALC,            /* Calculator (above numpad, P52) */
                KEY_BLUETOOTH,       /* Bluetooth */
                KEY_KEYBOARD         /* Keyboard, 0x315 */
                },
@@@ -9366,7 -9374,9 +9375,9 @@@ static int tpacpi_battery_probe(int bat
  {
        int ret = 0;
  
-       memset(&battery_info, 0, sizeof(struct tpacpi_battery_driver_data));
+       memset(&battery_info.batteries[battery], 0,
+               sizeof(battery_info.batteries[battery]));
        /*
         * 1) Get the current start threshold
         * 2) Check for support
  static int tpacpi_battery_get_id(const char *battery_name)
  {
  
-       if (strcmp(battery_name, "BAT0") == 0)
+       if (strcmp(battery_name, "BAT0") == 0 ||
+           tp_features.battery_force_primary)
                return BAT_PRIMARY;
        if (strcmp(battery_name, "BAT1") == 0)
                return BAT_SECONDARY;
@@@ -9597,8 -9608,26 +9609,26 @@@ static struct acpi_battery_hook battery
  
  /* Subdriver init/exit */
  
+ static const struct tpacpi_quirk battery_quirk_table[] __initconst = {
+       /*
+        * Individual addressing is broken on models that expose the
+        * primary battery as BAT1.
+        */
+       TPACPI_Q_LNV('J', '7', true),       /* B5400 */
+       TPACPI_Q_LNV('J', 'I', true),       /* Thinkpad 11e */
+       TPACPI_Q_LNV3('R', '0', 'B', true), /* Thinkpad 11e gen 3 */
+       TPACPI_Q_LNV3('R', '0', 'C', true), /* Thinkpad 13 */
+       TPACPI_Q_LNV3('R', '0', 'J', true), /* Thinkpad 13 gen 2 */
+ };
  static int __init tpacpi_battery_init(struct ibm_init_struct *ibm)
  {
+       memset(&battery_info, 0, sizeof(battery_info));
+       tp_features.battery_force_primary = tpacpi_check_quirks(
+                                       battery_quirk_table,
+                                       ARRAY_SIZE(battery_quirk_table));
        battery_hook_register(&battery_hook);
        return 0;
  }
@@@ -9809,36 -9838,37 +9839,37 @@@ err_out
  
  /* Probing */
  
- static bool __pure __init tpacpi_is_fw_digit(const char c)
+ static char __init tpacpi_parse_fw_id(const char * const s,
+                                     u32 *model, u16 *release)
  {
-       return (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z');
- }
+       int i;
+       if (!s || strlen(s) < 8)
+               goto invalid;
+       for (i = 0; i < 8; i++)
+               if (!((s[i] >= '0' && s[i] <= '9') ||
+                     (s[i] >= 'A' && s[i] <= 'Z')))
+                       goto invalid;
  
- static bool __pure __init tpacpi_is_valid_fw_id(const char * const s,
-                                               const char t)
- {
        /*
         * Most models: xxyTkkWW (#.##c)
         * Ancient 570/600 and -SL lacks (#.##c)
         */
-       if (s && strlen(s) >= 8 &&
-               tpacpi_is_fw_digit(s[0]) &&
-               tpacpi_is_fw_digit(s[1]) &&
-               s[2] == t &&
-               (s[3] == 'T' || s[3] == 'N') &&
-               tpacpi_is_fw_digit(s[4]) &&
-               tpacpi_is_fw_digit(s[5]))
-               return true;
+       if (s[3] == 'T' || s[3] == 'N') {
+               *model = TPID(s[0], s[1]);
+               *release = TPVER(s[4], s[5]);
+               return s[2];
  
        /* New models: xxxyTkkW (#.##c); T550 and some others */
-       return s && strlen(s) >= 8 &&
-               tpacpi_is_fw_digit(s[0]) &&
-               tpacpi_is_fw_digit(s[1]) &&
-               tpacpi_is_fw_digit(s[2]) &&
-               s[3] == t &&
-               (s[4] == 'T' || s[4] == 'N') &&
-               tpacpi_is_fw_digit(s[5]) &&
-               tpacpi_is_fw_digit(s[6]);
+       } else if (s[4] == 'T' || s[4] == 'N') {
+               *model = TPID3(s[0], s[1], s[2]);
+               *release = TPVER(s[5], s[6]);
+               return s[3];
+       }
+ invalid:
+       return '\0';
  }
  
  /* returns 0 - probe ok, or < 0 - probe error.
@@@ -9850,6 -9880,7 +9881,7 @@@ static int __must_check __init get_thin
        const struct dmi_device *dev = NULL;
        char ec_fw_string[18];
        char const *s;
+       char t;
  
        if (!tp)
                return -EINVAL;
                return -ENOMEM;
  
        /* Really ancient ThinkPad 240X will fail this, which is fine */
-       if (!(tpacpi_is_valid_fw_id(tp->bios_version_str, 'E') ||
-             tpacpi_is_valid_fw_id(tp->bios_version_str, 'C')))
+       t = tpacpi_parse_fw_id(tp->bios_version_str,
+                              &tp->bios_model, &tp->bios_release);
+       if (t != 'E' && t != 'C')
                return 0;
  
-       tp->bios_model = tp->bios_version_str[0]
-                        | (tp->bios_version_str[1] << 8);
-       tp->bios_release = (tp->bios_version_str[4] << 8)
-                        | tp->bios_version_str[5];
        /*
         * ThinkPad T23 or newer, A31 or newer, R50e or newer,
         * X32 or newer, all Z series;  Some models must have an
                        if (!tp->ec_version_str)
                                return -ENOMEM;
  
-                       if (tpacpi_is_valid_fw_id(ec_fw_string, 'H')) {
-                               tp->ec_model = ec_fw_string[0]
-                                               | (ec_fw_string[1] << 8);
-                               tp->ec_release = (ec_fw_string[4] << 8)
-                                               | ec_fw_string[5];
-                       } else {
+                       t = tpacpi_parse_fw_id(ec_fw_string,
+                                              &tp->ec_model, &tp->ec_release);
+                       if (t != 'H') {
                                pr_notice("ThinkPad firmware release %s doesn't match the known patterns\n",
                                          ec_fw_string);
                                pr_notice("please report this to %s\n",
This page took 0.189927 seconds and 4 git commands to generate.