]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branches 'for-4.10/asus', 'for-4.10/cp2112', 'for-4.10/i2c-hid-nopower', 'for...
authorJiri Kosina <jkosina@suse.cz>
Wed, 14 Dec 2016 09:12:26 +0000 (10:12 +0100)
committerJiri Kosina <jkosina@suse.cz>
Wed, 14 Dec 2016 09:12:26 +0000 (10:12 +0100)
1  2  3  4  5  6  7  8  9  10  11 
MAINTAINERS
drivers/hid/Kconfig
drivers/hid/Makefile
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-input.c
drivers/hid/hid-microsoft.c
drivers/hid/hid-multitouch.c
drivers/hid/intel-ish-hid/ipc/ipc.c
drivers/hid/usbhid/hid-quirks.c
include/linux/hid.h

diff --combined MAINTAINERS
index ad9b965e5e4450532daea69e8f1bb91ab3d21b1a,ad9b965e5e4450532daea69e8f1bb91ab3d21b1a,33d77794a1f2289c64418bbed0ab2ba8bd49ac0d,411e3b87b8c2c137e201996060e1741b8fd73484,1cd38a7e0064e537a95a9fc7473d28cfdb1822f4,ad9b965e5e4450532daea69e8f1bb91ab3d21b1a,ad9b965e5e4450532daea69e8f1bb91ab3d21b1a,33d77794a1f2289c64418bbed0ab2ba8bd49ac0d,cbc1533f5b82d3834cbc11c9e4e8fc593d7bbf02,1cd38a7e0064e537a95a9fc7473d28cfdb1822f4,1cd38a7e0064e537a95a9fc7473d28cfdb1822f4..1f0c88ff9a45999fe7945a23e8adc01ac38a8449
@@@@@@@@@@@@ -316,14 -316,14 -316,6 -316,14 -316,14 -316,14 -316,14 -316,6 -316,14 -316,14 -316,14 +316,14 @@@@@@@@@@@@ W:      https://01.org/linux-acp
           S:   Supported
           F:   drivers/acpi/fan.c
           
  +    +   ACPI FOR ARM64 (ACPI/arm64)
  +    +   M:   Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
  +    +   M:   Hanjun Guo <hanjun.guo@linaro.org>
  +    +   M:   Sudeep Holla <sudeep.holla@arm.com>
  +    +   L:   linux-acpi@vger.kernel.org
  +    +   S:   Maintained
  +    +   F:   drivers/acpi/arm64
  +    +   
           ACPI THERMAL DRIVER
           M:   Zhang Rui <rui.zhang@intel.com>
           L:   linux-acpi@vger.kernel.org
@@@@@@@@@@@@ -874,13 -874,13 -866,6 -874,13 -874,13 -874,13 -874,13 -866,6 -874,13 -874,13 -874,13 +874,13 @@@@@@@@@@@@ F:      drivers/net/phy/mdio-xgene.
           F:   Documentation/devicetree/bindings/net/apm-xgene-enet.txt
           F:   Documentation/devicetree/bindings/net/apm-xgene-mdio.txt
           
  +    +   APPLIED MICRO (APM) X-GENE SOC PMU
  +    +   M:   Tai Nguyen <ttnguyen@apm.com>
  +    +   S:   Supported
  +    +   F:   drivers/perf/xgene_pmu.c
  +    +   F:   Documentation/perf/xgene-pmu.txt
  +    +   F:   Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt
  +    +   
           APTINA CAMERA SENSOR PLL
           M:   Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
           L:   linux-media@vger.kernel.org
@@@@@@@@@@@@ -1018,7 -1018,7 -1003,6 -1018,7 -1018,7 -1018,7 -1018,7 -1003,6 -1018,7 -1018,7 -1018,7 +1018,7 @@@@@@@@@@@@ M:    Chen-Yu Tsai <wens@csie.org
           L:   linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
           S:   Maintained
           N:   sun[x456789]i
  +    +   F:   arch/arm/boot/dts/ntc-gr8*
           
           ARM/Allwinner SoC Clock Support
           M:   Emilio López <emilio@elopez.com.ar>
@@@@@@@@@@@@ -1442,7 -1442,7 -1426,6 -1442,7 -1442,6 -1442,7 -1442,7 -1426,6 -1442,7 -1442,6 -1442,6 +1442,7 @@@@@@@@@@@@ F:    drivers/cpufreq/mvebu-cpufreq.
           F:   arch/arm/configs/mvebu_*_defconfig
           
           ARM/Marvell Berlin SoC support
  + +  + ++M:   Jisheng Zhang <jszhang@marvell.com>
           M:   Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
           L:   linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
           S:   Maintained
@@@@@@@@@@@@ -1476,7 -1476,7 -1459,6 -1476,7 -1475,7 -1476,7 -1476,7 -1459,6 -1476,7 -1475,7 -1475,7 +1476,7 @@@@@@@@@@@@ F:    arch/arm/mach-orion5x/ts78xx-
           ARM/OXNAS platform support
           M:   Neil Armstrong <narmstrong@baylibre.com>
           L:   linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  +    +   L:   linux-oxnas@lists.tuxfamily.org (moderated for non-subscribers)
           S:   Maintained
           F:   arch/arm/mach-oxnas/
           F:   arch/arm/boot/dts/oxnas*
           F:   arch/arm/plat-samsung/s5p-dev-mfc.c
           F:   drivers/media/platform/s5p-mfc/
           
  -    -   ARM/SAMSUNG S5P SERIES TV SUBSYSTEM SUPPORT
  -    -   M:   Kyungmin Park <kyungmin.park@samsung.com>
  -    -   M:   Tomasz Stanislawski <t.stanislaws@samsung.com>
  -    -   L:   linux-arm-kernel@lists.infradead.org
  -    -   L:   linux-media@vger.kernel.org
  -    -   S:   Maintained
  -    -   F:   drivers/media/platform/s5p-tv/
  -    -   
           ARM/SAMSUNG S5P SERIES HDMI CEC SUBSYSTEM SUPPORT
           M:   Kyungmin Park <kyungmin.park@samsung.com>
           L:   linux-arm-kernel@lists.infradead.org
@@@@@@@@@@@@ -1869,7 -1869,7 -1859,6 -1869,7 -1868,7 -1869,7 -1869,7 -1859,6 -1869,7 -1868,7 -1868,7 +1869,7 @@@@@@@@@@@@ F:    drivers/bus/uniphier-system-bus.
           F:   drivers/clk/uniphier/
           F:   drivers/i2c/busses/i2c-uniphier*
           F:   drivers/pinctrl/uniphier/
  +    +   F:   drivers/reset/reset-uniphier.c
           F:   drivers/tty/serial/8250/8250_uniphier.c
           N:   uniphier
           
@@@@@@@@@@@@ -2253,9 -2253,9 -2242,9 -2253,9 -2252,9 -2253,9 -2253,9 -2242,9 -2253,9 -2252,9 -2252,9 +2253,9 @@@@@@@@@@@@ S:    Maintaine
           F:   drivers/net/wireless/atmel/atmel*
           
           ATMEL MAXTOUCH DRIVER
  -    -   M:   Nick Dyer <nick.dyer@itdev.co.uk>
  -    -   T:   git git://github.com/atmel-maxtouch/linux.git
  -    -   S:   Supported
  +    +   M:   Nick Dyer <nick@shmanahar.org>
  +    +   T:   git git://github.com/ndyer/linux.git
  +    +   S:   Maintained
           F:   Documentation/devicetree/bindings/input/atmel,maxtouch.txt
           F:   drivers/input/touchscreen/atmel_mxt_ts.c
           F:   include/linux/platform_data/atmel_mxt_ts.h
@@@@@@@@@@@@ -2483,7 -2483,7 -2472,6 -2483,7 -2482,7 -2483,7 -2483,7 -2472,6 -2483,7 -2482,7 -2482,7 +2483,7 @@@@@@@@@@@@ T:    git git://git.kernel.org/pub/scm/lin
           S:   Maintained
           F:   block/
           F:   kernel/trace/blktrace.c
  +    +   F:   lib/sbitmap.c
           
           BLOCK2MTD DRIVER
           M:   Joern Engel <joern@lazybastard.org>
@@@@@@@@@@@@ -2552,18 -2552,18 -2540,15 -2552,18 -2551,15 -2552,18 -2552,18 -2540,15 -2552,18 -2551,15 -2551,15 +2552,18 @@@@@@@@@@@@ S:        Supporte
           F:   drivers/net/ethernet/broadcom/genet/
           
           BROADCOM BNX2 GIGABIT ETHERNET DRIVER
  - -  - --M:   Sony Chacko <sony.chacko@qlogic.com>
  - -  - --M:   Dept-HSGLinuxNICDev@qlogic.com
  + +  + ++M:   Rasesh Mody <rasesh.mody@cavium.com>
  + +  + ++M:   Harish Patil <harish.patil@cavium.com>
  + +  + ++M:   Dept-GELinuxNICDev@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   drivers/net/ethernet/broadcom/bnx2.*
           F:   drivers/net/ethernet/broadcom/bnx2_*
           
           BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
  - -  - --M:   Ariel Elior <ariel.elior@qlogic.com>
  + +  + ++M:   Yuval Mintz <Yuval.Mintz@cavium.com>
  + +  + ++M:   Ariel Elior <ariel.elior@cavium.com>
  + +  + ++M:   everest-linux-l2@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   drivers/net/ethernet/broadcom/bnx2x/
@@@@@@@@@@@@ -2610,13 -2610,13 -2595,6 -2610,13 -2606,13 -2610,13 -2610,13 -2595,6 -2610,13 -2606,13 -2606,13 +2610,13 @@@@@@@@@@@@ F:  arch/arm/mach-bcm/bcm_5301x.
           F:   arch/arm/boot/dts/bcm5301x*.dtsi
           F:   arch/arm/boot/dts/bcm470*
           
  +    +   BROADCOM BCM53573 ARM ARCHITECTURE
  +    +   M:   RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
  +    +   L:   linux-arm-kernel@lists.infradead.org
  +    +   S:   Maintained
  +    +   F:   arch/arm/boot/dts/bcm53573*
  +    +   F:   arch/arm/boot/dts/bcm47189*
  +    +   
           BROADCOM BCM63XX ARM ARCHITECTURE
           M:   Florian Fainelli <f.fainelli@gmail.com>
           M:   bcm-kernel-feedback-list@broadcom.com
@@@@@@@@@@@@ -2770,9 -2770,9 -2748,7 -2770,9 -2766,7 -2770,9 -2770,9 -2748,7 -2770,9 -2766,7 -2766,7 +2770,9 @@@@@@@@@@@@ S:    Supporte
           F:   drivers/scsi/bfa/
           
           BROCADE BNA 10 GIGABIT ETHERNET DRIVER
  - -  - --M:   Rasesh Mody <rasesh.mody@qlogic.com>
  + +  + ++M:   Rasesh Mody <rasesh.mody@cavium.com>
  + +  + ++M:   Sudarsana Kalluru <sudarsana.kalluru@cavium.com>
  + +  + ++M:   Dept-GELinuxNICDev@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   drivers/net/ethernet/brocade/bna/
@@@@@@@@@@@@ -2818,7 -2818,7 -2794,7 -2818,7 -2812,7 -2818,7 -2818,7 -2794,7 -2818,7 -2812,7 -2812,7 +2818,7 @@@@@@@@@@@@ L:    linux-media@vger.kernel.or
           W:   https://linuxtv.org
           T:   git git://linuxtv.org/media_tree.git
           S:   Odd fixes
  -    -   F:   Documentation/video4linux/bttv/
  +    +   F:   Documentation/media/v4l-drivers/bttv*
           F:   drivers/media/pci/bt8xx/bttv*
           
           BUSLOGIC SCSI DRIVER
@@@@@@@@@@@@ -2863,7 -2863,7 -2839,7 -2863,7 -2857,7 -2863,7 -2863,7 -2839,7 -2863,7 -2857,7 -2857,7 +2863,7 @@@@@@@@@@@@ M:    Jonathan Corbet <corbet@lwn.net
           L:   linux-media@vger.kernel.org
           T:   git git://linuxtv.org/media_tree.git
           S:   Maintained
  -    -   F:   Documentation/video4linux/cafe_ccic
  +    +   F:   Documentation/media/v4l-drivers/cafe_ccic*
           F:   drivers/media/platform/marvell-ccic/
           
           CAIF NETWORK LAYER
           F:   drivers/iio/light/cm*
           F:   Documentation/devicetree/bindings/i2c/trivial-devices.txt
           
  +    +   CAVIUM I2C DRIVER
  +    +   M:   Jan Glauber <jglauber@cavium.com>
  +    +   M:   David Daney <david.daney@cavium.com>
  +    +   W:   http://www.cavium.com
  +    +   S:   Supported
  +    +   F:   drivers/i2c/busses/i2c-octeon*
  +    +   F:   drivers/i2c/busses/i2c-thunderx*
  +    +   
           CAVIUM LIQUIDIO NETWORK DRIVER
           M:     Derek Chickles <derek.chickles@caviumnetworks.com>
           M:     Satanand Burla <satananda.burla@caviumnetworks.com>
@@@@@@@@@@@@ -2965,7 -2965,7 -2933,7 -2965,7 -2959,7 -2965,7 -2965,7 -2933,7 -2965,7 -2959,7 -2959,7 +2965,7 @@@@@@@@@@@@ T:    git git://linuxtv.org/media_tree.gi
           W:   http://linuxtv.org
           S:   Supported
           F:   Documentation/cec.txt
  -    -   F:   Documentation/DocBook/media/v4l/cec*
  +    +   F:   Documentation/media/uapi/cec
           F:   drivers/staging/media/cec/
           F:   drivers/media/cec-edid.c
           F:   drivers/media/rc/keymaps/rc-cec.c
@@@@@@@@@@@@ -3453,7 -3453,7 -3421,7 -3453,7 -3447,7 -3453,7 -3453,7 -3421,7 -3453,7 -3447,7 -3447,7 +3453,7 @@@@@@@@@@@@ T:    git git://linuxtv.org/media_tree.gi
           W:   https://linuxtv.org
           W:   http://www.ivtvdriver.org/index.php/Cx18
           S:   Maintained
  -    -   F:   Documentation/video4linux/cx18.txt
  +    +   F:   Documentation/media/v4l-drivers/cx18*
           F:   drivers/media/pci/cx18/
           F:   include/uapi/linux/ivtv*
           
@@@@@@@@@@@@ -3482,7 -3482,7 -3450,7 -3482,7 -3476,7 -3482,7 -3482,7 -3450,7 -3482,7 -3476,7 -3476,7 +3482,7 @@@@@@@@@@@@ L:    linux-media@vger.kernel.or
           W:   https://linuxtv.org
           T:   git git://linuxtv.org/media_tree.git
           S:   Odd fixes
  -    -   F:   Documentation/video4linux/cx88/
  +    +   F:   Documentation/media/v4l-drivers/cx88*
           F:   drivers/media/pci/cx88/
           
           CXD2820R MEDIA DRIVER
@@@@@@@@@@@@ -3515,7 -3515,7 -3483,6 -3515,7 -3509,7 -3515,7 -3515,7 -3483,6 -3515,7 -3509,7 -3509,7 +3515,7 @@@@@@@@@@@@ L:    linux-rdma@vger.kernel.or
           W:   http://www.openfabrics.org
           S:   Supported
           F:   drivers/infiniband/hw/cxgb3/
  +    +   F:   include/uapi/rdma/cxgb3-abi.h
           
           CXGB4 ETHERNET DRIVER (CXGB4)
           M:   Hariprasad S <hariprasad@chelsio.com>
@@@@@@@@@@@@ -3537,7 -3537,7 -3504,6 -3537,7 -3531,7 -3537,7 -3537,7 -3504,6 -3537,7 -3531,7 -3531,7 +3537,7 @@@@@@@@@@@@ L:    linux-rdma@vger.kernel.or
           W:   http://www.openfabrics.org
           S:   Supported
           F:   drivers/infiniband/hw/cxgb4/
  +    +   F:   include/uapi/rdma/cxgb4-abi.h
           
           CXGB4VF ETHERNET DRIVER (CXGB4VF)
           M:   Casey Leedom <leedom@chelsio.com>
@@@@@@@@@@@@ -3548,14 -3548,14 -3514,14 -3548,14 -3542,14 -3548,14 -3548,14 -3514,14 -3548,14 -3542,14 -3542,14 +3548,14 @@@@@@@@@@@@ F:        drivers/net/ethernet/chelsio/cxgb4vf
           
           CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
           M:   Ian Munsie <imunsie@au1.ibm.com>
  -    -   M:   Michael Neuling <mikey@neuling.org>
  +    +   M:   Frederic Barrat <fbarrat@linux.vnet.ibm.com>
           L:   linuxppc-dev@lists.ozlabs.org
           S:   Supported
  +    +   F:   arch/powerpc/platforms/powernv/pci-cxl.c
           F:   drivers/misc/cxl/
           F:   include/misc/cxl*
           F:   include/uapi/misc/cxl.h
           F:   Documentation/powerpc/cxl.txt
  -    -   F:   Documentation/powerpc/cxl.txt
           F:   Documentation/ABI/testing/sysfs-class-cxl
           
           CXLFLASH (IBM Coherent Accelerator Processor Interface CAPI Flash) SCSI DRIVER
@@@@@@@@@@@@ -3963,7 -3963,7 -3929,7 -3963,7 -3957,7 -3963,7 -3963,7 -3929,7 -3963,7 -3957,7 -3957,7 +3963,7 @@@@@@@@@@@@ X:    Documentation/devicetree
           X:   Documentation/acpi
           X:   Documentation/power
           X:   Documentation/spi
  -    -   X:   Documentation/DocBook/media
  +    +   X:   Documentation/media
           T:   git git://git.lwn.net/linux.git docs-next
           
           DOUBLETALK DRIVER
@@@@@@@@@@@@ -4136,14 -4136,14 -4102,6 -4136,14 -4130,14 -4136,14 -4136,14 -4102,6 -4136,14 -4130,14 -4130,14 +4136,14 @@@@@@@@@@@@ S:  Orphan / Obsolet
           F:   drivers/gpu/drm/i810/
           F:   include/uapi/drm/i810_drm.h
           
  +    +   DRM DRIVERS FOR MEDIATEK
  +    +   M:   CK Hu <ck.hu@mediatek.com>
  +    +   M:   Philipp Zabel <p.zabel@pengutronix.de>
  +    +   L:   dri-devel@lists.freedesktop.org
  +    +   S:   Supported
  +    +   F:   drivers/gpu/drm/mediatek/
  +    +   F:   Documentation/devicetree/bindings/display/mediatek/
  +    +   
           DRM DRIVER FOR MSM ADRENO GPU
           M:   Rob Clark <robdclark@gmail.com>
           L:   linux-arm-msm@vger.kernel.org
@@@@@@@@@@@@ -4626,9 -4626,9 -4584,8 -4626,9 -4620,8 -4626,9 -4626,9 -4584,8 -4626,9 -4620,8 -4620,8 +4626,9 @@@@@@@@@@@@ F:    sound/usb/misc/ua101.
           
           EXTENSIBLE FIRMWARE INTERFACE (EFI)
           M:   Matt Fleming <matt@codeblueprint.co.uk>
  + +  + ++M:   Ard Biesheuvel <ard.biesheuvel@linaro.org>
           L:   linux-efi@vger.kernel.org
  - -  - --T:   git git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git
  + +  + ++T:   git git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git
           S:   Maintained
           F:   Documentation/efi-stub.txt
           F:   arch/ia64/kernel/efi.c
@@@@@@@@@@@@ -4679,7 -4679,7 -4636,6 -4679,7 -4672,7 -4679,7 -4679,7 -4636,6 -4679,7 -4672,7 -4672,7 +4679,7 @@@@@@@@@@@@ W:    https://linuxtv.or
           T:   git git://linuxtv.org/media_tree.git
           S:   Maintained
           F:   drivers/media/usb/em28xx/
  +    +   F:   Documentation/media/v4l-drivers/em28xx*
           
           EMBEDDED LINUX
           M:   Paul Gortmaker <paul.gortmaker@windriver.com>
@@@@@@@@@@@@ -4790,6 -4790,6 -4746,15 -4790,6 -4783,6 -4790,6 -4790,6 -4746,15 -4790,6 -4783,6 -4783,6 +4790,6 @@@@@@@@@@@@ L:  iommu@lists.linux-foundation.or
           S:   Maintained
           F:   drivers/iommu/exynos-iommu.c
           
  -    -   EXYNOS MIPI DISPLAY DRIVERS
  -    -   M:   Inki Dae <inki.dae@samsung.com>
  -    -   M:   Donghwa Lee <dh09.lee@samsung.com>
  -    -   M:   Kyungmin Park <kyungmin.park@samsung.com>
  -    -   L:   linux-fbdev@vger.kernel.org
  -    -   S:   Maintained
  -    -   F:   drivers/video/fbdev/exynos/exynos_mipi*
  -    -   F:   include/video/exynos_mipi*
  -    -   
           EZchip NPS platform support
           M:   Noam Camus <noamc@ezchip.com>
           S:   Supported
@@@@@@@@@@@@ -4968,9 -4968,9 -4933,12 -4968,9 -4961,9 -4968,9 -4968,9 -4933,12 -4968,9 -4961,9 -4961,9 +4968,9 @@@@@@@@@@@@ F:  drivers/net/wan/dlci.
           F:   drivers/net/wan/sdla.c
           
           FRAMEBUFFER LAYER
  -    -   M:   Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
           M:   Tomi Valkeinen <tomi.valkeinen@ti.com>
           L:   linux-fbdev@vger.kernel.org
  -    -   W:   http://linux-fbdev.sourceforge.net/
           Q:   http://patchwork.kernel.org/project/linux-fbdev/list/
  -    -   T:   git git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev.git
           S:   Maintained
           F:   Documentation/fb/
           F:   drivers/video/
@@@@@@@@@@@@ -5037,13 -5037,13 -5005,6 -5037,13 -5030,13 -5037,13 -5037,13 -5005,6 -5037,13 -5030,13 -5030,13 +5037,13 @@@@@@@@@@@@ F:  drivers/net/ethernet/freescale/fec_p
           F:   drivers/net/ethernet/freescale/fec.h
           F:   Documentation/devicetree/bindings/net/fsl-fec.txt
           
  +    +   FREESCALE QORIQ DPAA FMAN DRIVER
  +    +   M:   Madalin Bucur <madalin.bucur@nxp.com>
  +    +   L:   netdev@vger.kernel.org
  +    +   S:   Maintained
  +    +   F:   drivers/net/ethernet/freescale/fman
  +    +   F:   Documentation/devicetree/bindings/powerpc/fsl/fman.txt
  +    +   
           FREESCALE QUICC ENGINE LIBRARY
           L:   linuxppc-dev@lists.ozlabs.org
           S:   Orphan
@@@@@@@@@@@@ -5293,12 -5293,12 -5254,6 -5293,12 -5286,6 -5293,12 -5293,12 -5254,6 -5293,12 -5286,6 -5286,6 +5293,12 @@@@@@@@@@@@ M:     Joe Perches <joe@perches.com
           S:   Maintained
           F:   scripts/get_maintainer.pl
           
  + +  + ++GENWQE (IBM Generic Workqueue Card)
  + +  + ++M:   Frank Haverkamp <haver@linux.vnet.ibm.com>
  + +  + ++M:   Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
  + +  + ++S:   Supported
  + +  + ++F:   drivers/misc/genwqe/
  + +  + ++
           GFS2 FILE SYSTEM
           M:   Steven Whitehouse <swhiteho@redhat.com>
           M:   Bob Peterson <rpeterso@redhat.com>
@@@@@@@@@@@@ -5440,13 -5440,13 -5395,6 -5440,13 -5427,13 -5440,13 -5440,13 -5395,6 -5440,13 -5427,13 -5427,13 +5440,13 @@@@@@@@@@@@ F:  drivers/staging/greybus/arche-platfo
           F:   drivers/staging/greybus/arche-apb-ctrl.c
           F:   drivers/staging/greybus/arche_platform.h
           
  +    +   GS1662 VIDEO SERIALIZER
  +    +   M:   Charles-Antoine Couret <charles-antoine.couret@nexvision.fr>
  +    +   L:   linux-media@vger.kernel.org
  +    +   T:   git git://linuxtv.org/media_tree.git
  +    +   S:   Maintained
  +    +   F:   drivers/media/spi/gs1662.c
  +    +   
           GSPCA FINEPIX SUBDRIVER
           M:   Frank Zago <frank@zago.net>
           L:   linux-media@vger.kernel.org
           F:   drivers/net/ethernet/hisilicon/
           F:   Documentation/devicetree/bindings/net/hisilicon*.txt
           
  +    +   HISILICON ROCE DRIVER
  +    +   M:   Lijun Ou <oulijun@huawei.com>
  +    +   M:   Wei Hu(Xavier) <xavier.huwei@huawei.com>
  +    +   L:   linux-rdma@vger.kernel.org
  +    +   S:   Maintained
  +    +   F:   drivers/infiniband/hw/hns/
  +    +   F:   Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt
  +    +   
           HISILICON SAS Controller
           M:   John Garry <john.garry@huawei.com>
           W:   http://www.hisilicon.com
@@@@@@@@@@@@ -5822,14 -5822,14 -5762,6 -5822,14 -5809,14 -5822,14 -5822,14 -5762,6 -5822,14 -5809,14 -5809,14 +5822,14 @@@@@@@@@@@@ M:  Nadia Yvette Chambers <nyc@holomorph
           S:   Maintained
           F:   fs/hugetlbfs/
           
  +    +   HVA ST MEDIA DRIVER
  +    +   M:   Jean-Christophe Trotin <jean-christophe.trotin@st.com>
  +    +   L:   linux-media@vger.kernel.org
  +    +   T:   git git://linuxtv.org/media_tree.git
  +    +   W:   https://linuxtv.org
  +    +   S:   Supported
  +    +   F:   drivers/media/platform/sti/hva
  +    +   
           Hyper-V CORE AND DRIVERS
           M:   "K. Y. Srinivasan" <kys@microsoft.com>
           M:   Haiyang Zhang <haiyangz@microsoft.com>
@@@@@@@@@@@@ -5856,8 -5856,8 -5788,6 -5856,8 -5843,8 -5856,8 -5856,8 -5788,6 -5856,8 -5843,8 -5843,8 +5856,8 @@@@@@@@@@@@ S:    Maintaine
           F:   Documentation/i2c/i2c-topology
           F:   Documentation/i2c/muxes/
           F:   Documentation/devicetree/bindings/i2c/i2c-mux*
  +    +   F:   Documentation/devicetree/bindings/i2c/i2c-arb*
  +    +   F:   Documentation/devicetree/bindings/i2c/i2c-gate*
           F:   drivers/i2c/i2c-mux.c
           F:   drivers/i2c/muxes/
           F:   include/linux/i2c-mux.h
@@@@@@@@@@@@ -6144,12 -6144,12 -6074,6 -6144,12 -6131,12 -6144,12 -6144,12 -6074,6 -6144,12 -6131,12 -6131,12 +6144,12 @@@@@@@@@@@@ M:  Stanislaw Gruszka <stf_xl@wp.pl
           S:   Maintained
           F:   drivers/usb/atm/ueagle-atm.c
           
  +    +   IMGTEC ASCII LCD DRIVER
  +    +   M:   Paul Burton <paul.burton@imgtec.com>
  +    +   S:   Maintained
  +    +   F:   Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt
  +    +   F:   drivers/auxdisplay/img-ascii-lcd.c
  +    +   
           INA209 HARDWARE MONITOR DRIVER
           M:   Guenter Roeck <linux@roeck-us.net>
           L:   linux-hwmon@vger.kernel.org
@@@@@@@@@@@@ -6180,12 -6180,12 -6104,6 -6180,12 -6167,12 -6180,12 -6180,12 -6104,6 -6180,12 -6167,12 -6167,12 +6180,12 @@@@@@@@@@@@ M:  Zubair Lutfullah Kakakhel <Zubair.Ka
           S:   Maintained
           F:   drivers/dma/dma-jz4780.c
           
  +    +   INGENIC JZ4780 NAND DRIVER
  +    +   M:   Harvey Hunt <harveyhuntnexus@gmail.com>
  +    +   L:   linux-mtd@lists.infradead.org
  +    +   S:   Maintained
  +    +   F:   drivers/mtd/nand/jz4780_*
  +    +   
           INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
           M:   Mimi Zohar <zohar@linux.vnet.ibm.com>
           M:   Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
@@@@@@@@@@@@ -6461,7 -6461,7 -6379,6 -6461,7 -6448,7 -6461,7 -6461,7 -6379,6 -6461,7 -6448,7 -6448,7 +6461,7 @@@@@@@@@@@@ F:    include/linux/mei_cl_bus.
           F:   drivers/misc/mei/*
           F:   drivers/watchdog/mei_wdt.c
           F:   Documentation/misc-devices/mei/*
  +    +   F:   samples/mei/*
           
           INTEL MIC DRIVERS (mic)
           M:   Sudeep Dutt <sudeep.dutt@intel.com>
@@@@@@@@@@@@ -6648,10 -6648,10 -6565,10 -6648,10 -6635,10 -6648,10 -6648,10 -6565,10 -6648,10 -6635,10 -6635,10 +6648,10 @@@@@@@@@@@@ S:        Maintaine
           F:   drivers/firmware/iscsi_ibft*
           
           ISCSI
  -    -   M:   Mike Christie <michaelc@cs.wisc.edu>
  +    +   M:   Lee Duncan <lduncan@suse.com>
  +    +   M:   Chris Leech <cleech@redhat.com>
           L:   open-iscsi@googlegroups.com
  -    -   W:   www.open-iscsi.org
  -    -   T:   git git://git.kernel.org/pub/scm/linux/kernel/git/mnc/linux-2.6-iscsi.git
  +    +   W:   www.open-iscsi.com
           S:   Maintained
           F:   drivers/scsi/*iscsi*
           F:   include/scsi/*iscsi*
@@@@@@@@@@@@ -6721,7 -6721,7 -6638,7 -6721,7 -6708,7 -6721,7 -6721,7 -6638,7 -6721,7 -6708,7 -6708,7 +6721,7 @@@@@@@@@@@@ L:    linux-media@vger.kernel.or
           T:   git git://linuxtv.org/media_tree.git
           W:   http://www.ivtvdriver.org
           S:   Maintained
  -    -   F:   Documentation/video4linux/*.ivtv
  +    +   F:   Documentation/media/v4l-drivers/ivtv*
           F:   drivers/media/pci/ivtv/
           F:   include/uapi/linux/ivtv*
           
@@@@@@@@@@@@ -7084,7 -7084,7 -7001,6 -7084,6 -7071,6 -7084,7 -7084,7 -7001,6 -7084,6 -7071,6 -7071,6 +7084,7 @@@@@@@@@@@@ F:    drivers/scsi/53c700
           LED SUBSYSTEM
           M:   Richard Purdie <rpurdie@rpsys.net>
           M:   Jacek Anaszewski <j.anaszewski@samsung.com>
  +++  ++++M:   Pavel Machek <pavel@ucw.cz>
           L:   linux-leds@vger.kernel.org
           T:   git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
           S:   Maintained
@@@@@@@@@@@@ -7230,11 -7230,11 -7146,17 -7229,11 -7216,11 -7230,11 -7230,11 -7146,17 -7229,11 -7216,11 -7216,11 +7230,11 @@@@@@@@@@@@ F:        drivers/lightnvm
           F:   include/linux/lightnvm.h
           F:   include/uapi/linux/lightnvm.h
           
  -    -   LINUX FOR IBM pSERIES (RS/6000)
  -    -   M:   Paul Mackerras <paulus@au.ibm.com>
  -    -   W:   http://www.ibm.com/linux/ltc/projects/ppc
  -    -   S:   Supported
  -    -   F:   arch/powerpc/boot/rs6000.h
  -    -   
           LINUX FOR POWERPC (32-BIT AND 64-BIT)
           M:   Benjamin Herrenschmidt <benh@kernel.crashing.org>
           M:   Paul Mackerras <paulus@samba.org>
           M:   Michael Ellerman <mpe@ellerman.id.au>
  -    -   W:   http://www.penguinppc.org/
  +    +   W:   https://github.com/linuxppc/linux/wiki
           L:   linuxppc-dev@lists.ozlabs.org
           Q:   http://patchwork.ozlabs.org/project/linuxppc-dev/list/
           T:   git git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
@@@@@@@@@@@@ -7249,7 -7249,7 -7171,6 -7248,7 -7235,7 -7249,7 -7249,7 -7171,6 -7248,7 -7235,7 -7235,7 +7249,7 @@@@@@@@@@@@ F:    drivers/net/ethernet/ibm/ibmvnic.
           F:   drivers/pci/hotplug/pnv_php.c
           F:   drivers/pci/hotplug/rpa*
           F:   drivers/scsi/ibmvscsi/
  +    +   F:   tools/testing/selftests/powerpc
           N:   opal
           N:   /pmac
           N:   powermac
@@@@@@@@@@@@ -7306,8 -7306,8 -7227,9 -7305,8 -7292,8 -7306,8 -7306,8 -7227,9 -7305,8 -7292,8 -7292,8 +7306,8 @@@@@@@@@@@@ F:    arch/powerpc/platforms/83xx
           F:   arch/powerpc/platforms/85xx/
           
           LINUX FOR POWERPC PA SEMI PWRFICIENT
  -    -   M:   Olof Johansson <olof@lixom.net>
           L:   linuxppc-dev@lists.ozlabs.org
  -    -   S:   Maintained
  +    +   S:   Orphan
           F:   arch/powerpc/platforms/pasemi/
           F:   drivers/*/*pasemi*
           F:   drivers/*/*/*pasemi*
@@@@@@@@@@@@ -7726,15 -7726,15 -7648,6 -7725,15 -7712,15 -7726,15 -7726,15 -7648,6 -7725,15 -7712,15 -7712,15 +7726,15 @@@@@@@@@@@@ F:  Documentation/devicetree/bindings/me
           F:   drivers/media/platform/rcar-fcp.c
           F:   include/media/rcar-fcp.h
           
  +    +   MEDIA DRIVERS FOR RENESAS - VIN
  +    +   M:   Niklas Söderlund <niklas.soderlund@ragnatech.se>
  +    +   L:   linux-media@vger.kernel.org
  +    +   L:   linux-renesas-soc@vger.kernel.org
  +    +   T:   git git://linuxtv.org/media_tree.git
  +    +   S:   Supported
  +    +   F:   Documentation/devicetree/bindings/media/rcar_vin.txt
  +    +   F:   drivers/media/platform/rcar-vin/
  +    +   
           MEDIA DRIVERS FOR RENESAS - VSP1
           M:   Laurent Pinchart <laurent.pinchart@ideasonboard.com>
           L:   linux-media@vger.kernel.org
@@@@@@@@@@@@ -7812,7 -7812,7 -7725,9 -7811,7 -7798,7 -7812,7 -7812,7 -7725,9 -7811,7 -7798,7 -7798,7 +7812,7 @@@@@@@@@@@@ W:    https://linuxtv.or
           Q:   http://patchwork.kernel.org/project/linux-media/list/
           T:   git git://linuxtv.org/media_tree.git
           S:   Maintained
  -    -   F:   Documentation/dvb/
  -    -   F:   Documentation/video4linux/
  -    -   F:   Documentation/DocBook/media/
  +    +   F:   Documentation/media/
           F:   drivers/media/
           F:   drivers/staging/media/
           F:   include/linux/platform_data/media/
@@@@@@@@@@@@ -7850,13 -7850,13 -7765,6 -7849,13 -7836,13 -7850,13 -7850,13 -7765,6 -7849,13 -7836,13 -7836,13 +7850,13 @@@@@@@@@@@@ F:  Documentation/scsi/megaraid.tx
           F:   drivers/scsi/megaraid.*
           F:   drivers/scsi/megaraid/
           
  +    +   MELFAS MIP4 TOUCHSCREEN DRIVER
  +    +   M:   Sangwon Jee <jeesw@melfas.com>
  +    +   W:   http://www.melfas.com
  +    +   S:   Supported
  +    +   F:   drivers/input/touchscreen/melfas_mip4.c
  +    +   F:   Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt
  +    +   
           MELLANOX ETHERNET DRIVER (mlx4_en)
           M:   Tariq Toukan <tariqt@mellanox.com>
           L:   netdev@vger.kernel.org
           MEMORY TECHNOLOGY DEVICES (MTD)
           M:   David Woodhouse <dwmw2@infradead.org>
           M:   Brian Norris <computersforpeace@gmail.com>
  + +  + ++M:   Boris Brezillon <boris.brezillon@free-electrons.com>
  + +  + ++M:   Marek Vasut <marek.vasut@gmail.com>
  + +  + ++M:   Richard Weinberger <richard@nod.at>
  + +  + ++M:   Cyrille Pitchen <cyrille.pitchen@atmel.com>
           L:   linux-mtd@lists.infradead.org
           W:   http://www.linux-mtd.infradead.org/
           Q:   http://patchwork.ozlabs.org/project/linux-mtd/list/
           F:   drivers/tty/serial/atmel_serial.c
           F:   include/linux/atmel_serial.h
           
  +    +   MICROCHIP / ATMEL ISC DRIVER
  +    +   M:   Songjun Wu <songjun.wu@microchip.com>
  +    +   L:   linux-media@vger.kernel.org
  +    +   S:   Supported
  +    +   F:   drivers/media/platform/atmel/atmel-isc.c
  +    +   F:   drivers/media/platform/atmel/atmel-isc-regs.h
  +    +   F:   devicetree/bindings/media/atmel-isc.txt
  +    +   
           MICROSOFT SURFACE PRO 3 BUTTON DRIVER
           M:   Chen Yu <yu.c.chen@intel.com>
           L:   platform-driver-x86@vger.kernel.org
@@@@@@@@@@@@ -8046,7 -8046,7 -7942,6 -8045,7 -8028,7 -8046,7 -8046,7 -7942,6 -8045,7 -8028,7 -8028,7 +8046,7 @@@@@@@@@@@@ Q:    http://patchwork.ozlabs.org/project/
           S:   Supported
           F:   drivers/net/ethernet/mellanox/mlx4/
           F:   include/linux/mlx4/
  +    +   F:   include/uapi/rdma/mlx4-abi.h
           
           MELLANOX MLX4 IB driver
           M:   Yishai Hadas <yishaih@mellanox.com>
@@@@@@@@@@@@ -8058,7 -8058,7 -7953,6 -8057,6 -8040,6 -8058,7 -8058,7 -7953,6 -8057,6 -8040,6 -8040,6 +8058,7 @@@@@@@@@@@@ F:    drivers/infiniband/hw/mlx4
           F:   include/linux/mlx4/
           
           MELLANOX MLX5 core VPI driver
  +++  ++++M:   Saeed Mahameed <saeedm@mellanox.com>
           M:   Matan Barak <matanb@mellanox.com>
           M:   Leon Romanovsky <leonro@mellanox.com>
           L:   netdev@vger.kernel.org
@@@@@@@@@@@@ -8068,7 -8068,7 -7962,6 -8066,7 -8049,7 -8068,7 -8068,7 -7962,6 -8066,7 -8049,7 -8049,7 +8068,7 @@@@@@@@@@@@ Q:    http://patchwork.ozlabs.org/project/
           S:   Supported
           F:   drivers/net/ethernet/mellanox/mlx5/core/
           F:   include/linux/mlx5/
  +    +   F:   include/uapi/rdma/mlx5-abi.h
           
           MELLANOX MLX5 IB driver
           M:   Matan Barak <matanb@mellanox.com>
@@@@@@@@@@@@ -8118,7 -8118,7 -8011,6 -8116,7 -8099,6 -8118,7 -8118,7 -8011,6 -8116,7 -8099,6 -8099,6 +8118,7 @@@@@@@@@@@@ S:    Maintaine
           F:   drivers/media/dvb-frontends/mn88473*
           
           MODULE SUPPORT
  + +  + ++M:   Jessica Yu <jeyu@redhat.com>
           M:   Rusty Russell <rusty@rustcorp.com.au>
           S:   Maintained
           F:   include/linux/module.h
@@@@@@@@@@@@ -8127,7 -8127,7 -8019,7 -8125,7 -8107,7 -8127,7 -8127,7 -8019,7 -8125,7 -8107,7 -8107,7 +8127,7 @@@@@@@@@@@@ F:    kernel/module.
           MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER
           W:   http://popies.net/meye/
           S:   Orphan
  -    -   F:   Documentation/video4linux/meye.txt
  +    +   F:   Documentation/media/v4l-drivers/meye*
           F:   drivers/media/pci/meye/
           F:   include/uapi/linux/meye.h
           
@@@@@@@@@@@@ -8232,7 -8232,7 -8124,7 -8230,7 -8212,7 -8232,7 -8232,7 -8124,7 -8230,7 -8212,7 -8212,7 +8232,7 @@@@@@@@@@@@ F:    include/linux/mfd
           MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
           M:   Ulf Hansson <ulf.hansson@linaro.org>
           L:   linux-mmc@vger.kernel.org
  - -  - --T:   git git://git.linaro.org/people/ulf.hansson/mmc.git
  + +  + ++T:   git git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git
           S:   Maintained
           F:   Documentation/devicetree/bindings/mmc/
           F:   drivers/mmc/
@@@@@@@@@@@@ -8342,7 -8342,7 -8234,6 -8340,7 -8322,7 -8342,7 -8342,7 -8234,6 -8340,7 -8322,7 -8322,7 +8342,7 @@@@@@@@@@@@ L:    linux-rdma@vger.kernel.or
           W:   http://www.intel.com/Products/Server/Adapters/Server-Cluster/Server-Cluster-overview.htm
           S:   Supported
           F:   drivers/infiniband/hw/nes/
  +    +   F:   include/uapi/rdma/nes-abi.h
           
           NETEM NETWORK EMULATOR
           M:   Stephen Hemminger <stephen@networkplumber.org>
@@@@@@@@@@@@ -8528,10 -8528,10 -8419,11 -8526,10 -8508,11 -8528,10 -8528,10 -8419,11 -8526,10 -8508,11 -8508,11 +8528,10 @@@@@@@@@@@@ F:        Documentation/devicetree/bindings/ne
           F:   drivers/net/wireless/
           
           NETXEN (1/10) GbE SUPPORT
  - -  - --M:   Manish Chopra <manish.chopra@qlogic.com>
  - -  - --M:   Sony Chacko <sony.chacko@qlogic.com>
  - -  - --M:   Rajesh Borundia <rajesh.borundia@qlogic.com>
  + +  + ++M:   Manish Chopra <manish.chopra@cavium.com>
  + +  + ++M:   Rahul Verma <rahul.verma@cavium.com>
  + +  + ++M:   Dept-GELinuxNICDev@cavium.com
           L:   netdev@vger.kernel.org
  - -  - --W:   http://www.qlogic.com
           S:   Supported
           F:   drivers/net/ethernet/qlogic/netxen/
           
@@@@@@@@@@@@ -9054,13 -9054,13 -8946,15 -9052,13 -9035,13 -9054,13 -9054,13 -8946,15 -9052,13 -9035,13 -9035,13 +9054,13 @@@@@@@@@@@@ S:        Maintaine
           F:   drivers/net/wireless/intersil/p54/
           
           PA SEMI ETHERNET DRIVER
  -    -   M:   Olof Johansson <olof@lixom.net>
           L:   netdev@vger.kernel.org
  -    -   S:   Maintained
  +    +   S:   Orphan
           F:   drivers/net/ethernet/pasemi/*
           
           PA SEMI SMBUS DRIVER
  -    -   M:   Olof Johansson <olof@lixom.net>
           L:   linux-i2c@vger.kernel.org
  -    -   S:   Maintained
  +    +   S:   Orphan
           F:   drivers/i2c/busses/i2c-pasemi.c
           
           PADATA PARALLEL EXECUTION MECHANISM
           F:   Documentation/devicetree/bindings/pci/versatile.txt
           F:   drivers/pci/host/pci-versatile.c
           
  +    +   PCI DRIVER FOR ARMADA 8K
  +    +   M:   Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  +    +   L:   linux-pci@vger.kernel.org
  +    +   L:   linux-arm-kernel@lists.infradead.org
  +    +   S:   Maintained
  +    +   F:   Documentation/devicetree/bindings/pci/pci-armada8k.txt
  +    +   F:   drivers/pci/host/pcie-armada8k.c
  +    +   
           PCI DRIVER FOR APPLIEDMICRO XGENE
           M:   Tanmay Inamdar <tinamdar@apm.com>
           L:   linux-pci@vger.kernel.org
@@@@@@@@@@@@ -9276,7 -9276,7 -9162,6 -9274,7 -9257,7 -9276,7 -9276,7 -9162,6 -9274,7 -9257,7 -9257,7 +9276,7 @@@@@@@@@@@@ M:    Thomas Petazzoni <thomas.petazzoni@f
           L:   linux-pci@vger.kernel.org
           L:   linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
           S:   Maintained
  +    +   F:   Documentation/devicetree/bindings/pci/aardvark-pci.txt
           F:   drivers/pci/host/pci-aardvark.c
           
           PCI DRIVER FOR NVIDIA TEGRA
@@@@@@@@@@@@ -9318,7 -9318,7 -9203,7 -9316,7 -9299,7 -9318,7 -9318,7 -9203,7 -9316,7 -9299,7 -9299,7 +9318,7 @@@@@@@@@@@@ S:    Maintaine
           F:   drivers/pci/host/*designware*
           
           PCI DRIVER FOR SYNOPSYS PROTOTYPING DEVICE
  - -  - --M:   Joao Pinto <jpinto@synopsys.com>
  + +  + ++M:   Jose Abreu <Jose.Abreu@synopsys.com>
           L:   linux-pci@vger.kernel.org
           S:   Maintained
           F:   Documentation/devicetree/bindings/pci/designware-pcie.txt
@@@@@@@@@@@@ -9337,7 -9337,7 -9222,7 -9335,7 -9318,7 -9337,7 -9337,7 -9222,7 -9335,7 -9318,7 -9318,7 +9337,7 @@@@@@@@@@@@ PCI DRIVER FOR INTEL VOLUME MANAGEMENT 
           M:   Keith Busch <keith.busch@intel.com>
           L:   linux-pci@vger.kernel.org
           S:   Supported
  ---  ----F:   arch/x86/pci/vmd.c
  +++  ++++F:   drivers/pci/host/vmd.c
           
           PCIE DRIVER FOR ST SPEAR13XX
           M:   Pratyush Anand <pratyush.anand@gmail.com>
@@@@@@@@@@@@ -9409,7 -9409,7 -9294,6 -9407,7 -9390,7 -9409,7 -9409,7 -9294,6 -9407,7 -9390,7 -9390,7 +9409,7 @@@@@@@@@@@@ W:    http://lists.infradead.org/mailman/l
           T:   git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia.git
           S:   Maintained
           F:   Documentation/pcmcia/
  +    +   F:   tools/pcmcia/
           F:   drivers/pcmcia/
           F:   include/pcmcia/
           
@@@@@@@@@@@@ -9541,8 -9541,8 -9425,6 -9539,8 -9522,8 -9541,8 -9541,8 -9425,6 -9539,8 -9522,8 -9522,8 +9541,8 @@@@@@@@@@@@ L:    linux-arm-kernel@lists.infradead.or
           L:   linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
           S:   Maintained
           F:   drivers/pinctrl/samsung/
  +    +   F:   include/dt-bindings/pinctrl/samsung.h
  +    +   F:   Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
           
           PIN CONTROLLER - SINGLE
           M:   Tony Lindgren <tony@atomide.com>
@@@@@@@@@@@@ -9793,7 -9793,7 -9675,7 -9791,7 -9774,7 -9793,7 -9793,7 -9675,7 -9791,7 -9774,7 -9774,7 +9793,7 @@@@@@@@@@@@ L:    linux-media@vger.kernel.or
           W:   http://www.isely.net/pvrusb2/
           T:   git git://linuxtv.org/media_tree.git
           S:   Maintained
  -    -   F:   Documentation/video4linux/README.pvrusb2
  +    +   F:   Documentation/media/v4l-drivers/pvrusb2*
           F:   drivers/media/usb/pvrusb2/
           
           PWC WEBCAM DRIVER
@@@@@@@@@@@@ -9907,32 -9907,32 -9789,33 -9905,32 -9888,33 -9907,32 -9907,32 -9789,33 -9905,32 -9888,33 -9888,33 +9907,32 @@@@@@@@@@@@ F:        Documentation/scsi/LICENSE.qla4xx
           F:   drivers/scsi/qla4xxx/
           
           QLOGIC QLA3XXX NETWORK DRIVER
  - -  - --M:   Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
  - -  - --M:   Ron Mercer <ron.mercer@qlogic.com>
  - -  - --M:   linux-driver@qlogic.com
  + +  + ++M:   Dept-GELinuxNICDev@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   Documentation/networking/LICENSE.qla3xxx
           F:   drivers/net/ethernet/qlogic/qla3xxx.*
           
           QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
  - -  - --M:   Dept-GELinuxNICDev@qlogic.com
  + +  + ++M:   Harish Patil <harish.patil@cavium.com>
  + +  + ++M:   Manish Chopra <manish.chopra@cavium.com>
  + +  + ++M:   Dept-GELinuxNICDev@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   drivers/net/ethernet/qlogic/qlcnic/
           
           QLOGIC QLGE 10Gb ETHERNET DRIVER
  - -  - --M:   Harish Patil <harish.patil@qlogic.com>
  - -  - --M:   Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
  - -  - --M:   Dept-GELinuxNICDev@qlogic.com
  - -  - --M:   linux-driver@qlogic.com
  + +  + ++M:   Harish Patil <harish.patil@cavium.com>
  + +  + ++M:   Manish Chopra <manish.chopra@cavium.com>
  + +  + ++M:   Dept-GELinuxNICDev@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   drivers/net/ethernet/qlogic/qlge/
           
           QLOGIC QL4xxx ETHERNET DRIVER
  - -  - --M:   Yuval Mintz <Yuval.Mintz@qlogic.com>
  - -  - --M:   Ariel Elior <Ariel.Elior@qlogic.com>
  - -  - --M:   everest-linux-l2@qlogic.com
  + +  + ++M:   Yuval Mintz <Yuval.Mintz@cavium.com>
  + +  + ++M:   Ariel Elior <Ariel.Elior@cavium.com>
  + +  + ++M:   everest-linux-l2@cavium.com
           L:   netdev@vger.kernel.org
           S:   Supported
           F:   drivers/net/ethernet/qlogic/qed/
@@@@@@@@@@@@ -10459,7 -10459,7 -10342,7 -10457,7 -10441,7 -10459,7 -10459,7 -10342,7 -10457,7 -10441,7 -10441,7 +10459,7 @@@@@@@@@@@@ L:        linux-media@vger.kernel.or
           W:   https://linuxtv.org
           T:   git git://linuxtv.org/media_tree.git
           S:   Odd fixes
  -    -   F:   Documentation/video4linux/*.saa7134
  +    +   F:   Documentation/media/v4l-drivers/saa7134*
           F:   drivers/media/pci/saa7134/
           
           SAA7146 VIDEO4LINUX-2 DRIVER
           F:   Documentation/devicetree/bindings/serial/
           F:   drivers/tty/serial/
           
  +    +   STI CEC DRIVER
  +    +   M:   Benjamin Gaignard <benjamin.gaignard@linaro.org>
  +    +   L:   kernel@stlinux.com
  +    +   S:   Maintained
  +    +   F:   drivers/staging/media/st-cec/
  +    +   F:   Documentation/devicetree/bindings/media/stih-cec.txt
  +    +   
           SYNOPSYS DESIGNWARE DMAC DRIVER
           M:   Viresh Kumar <vireshk@kernel.org>
           M:   Andy Shevchenko <andriy.shevchenko@linux.intel.com>
@@@@@@@@@@@@ -10915,7 -10915,7 -10791,6 -10913,7 -10897,7 -10915,7 -10915,7 -10791,6 -10913,7 -10897,7 -10897,7 +10915,7 @@@@@@@@@@@@ L:        linux-rdma@vger.kernel.or
           W:   http://www.emulex.com
           S:   Supported
           F:   drivers/infiniband/hw/ocrdma/
  +    +   F:   include/uapi/rdma/ocrdma-abi.h
           
           SFC NETWORK DRIVER
           M:   Solarflare linux maintainers <linux-net-drivers@solarflare.com>
           S:   Maintained
           F:   drivers/clk/spear/
           
  + +  + ++SPI NOR SUBSYSTEM
  + +  + ++M:   Cyrille Pitchen <cyrille.pitchen@atmel.com>
  + +  + ++M:   Marek Vasut <marek.vasut@gmail.com>
  + +  + ++L:   linux-mtd@lists.infradead.org
  + +  + ++W:   http://www.linux-mtd.infradead.org/
  + +  + ++Q:   http://patchwork.ozlabs.org/project/linux-mtd/list/
  + +  + ++T:   git git://github.com/spi-nor/linux.git
  + +  + ++S:   Maintained
  + +  + ++F:   drivers/mtd/spi-nor/
  + +  + ++F:   include/linux/mtd/spi-nor.h
  + +  + ++
           SPI SUBSYSTEM
           M:   Mark Brown <broonie@kernel.org>
           L:   linux-spi@vger.kernel.org
@@@@@@@@@@@@ -12186,15 -12186,15 -12050,6 -12184,15 -12157,15 -12186,15 -12186,15 -12050,6 -12184,15 -12157,15 -12157,15 +12186,15 @@@@@@@@@@@@ W:      https://linuxtv.or
           T:   git git://linuxtv.org/media_tree.git
           S:   Odd fixes
           F:   drivers/media/usb/tm6000/
  +    +   F:   Documentation/media/v4l-drivers/tm6000*
  +    +   
  +    +   TW5864 VIDEO4LINUX DRIVER
  +    +   M:   Bluecherry Maintainers <maintainers@bluecherrydvr.com>
  +    +   M:   Andrey Utkin <andrey.utkin@corp.bluecherry.net>
  +    +   M:   Andrey Utkin <andrey_utkin@fastmail.com>
  +    +   L:   linux-media@vger.kernel.org
  +    +   S:   Supported
  +    +   F:   drivers/media/pci/tw5864/
           
           TW68 VIDEO4LINUX DRIVER
           M:   Hans Verkuil <hverkuil@xs4all.nl>
           F:   Documentation/filesystems/udf.txt
           F:   fs/udf/
           
++++++++ ++UDRAW TABLET
++++++++ ++M:   Bastien Nocera <hadess@hadess.net>
++++++++ ++L:   linux-input@vger.kernel.org
++++++++ ++S:   Maintained
++++++++ ++F:   drivers/hid/hid-udraw.c
++++++++ ++
           UFS FILESYSTEM
           M:   Evgeniy Dushistov <dushistov@mail.ru>
           S:   Maintained
@@@@@@@@@@@@ -12687,7 -12687,7 -12542,7 -12685,7 -12658,7 -12687,7 -12687,7 -12542,7 -12691,7 -12658,7 -12658,7 +12693,7 @@@@@@@@@@@@ L:        linux-media@vger.kernel.or
           T:   git git://linuxtv.org/media_tree.git
           W:   http://royale.zerezo.com/zr364xx/
           S:   Maintained
  -    -   F:   Documentation/video4linux/zr364xx.txt
  +    +   F:   Documentation/media/v4l-drivers/zr364xx*
           F:   drivers/media/usb/zr364xx/
           
           ULPI BUS
@@@@@@@@@@@@ -12800,7 -12800,7 -12655,6 -12798,7 -12771,6 -12800,7 -12800,7 -12655,6 -12804,7 -12771,6 -12771,6 +12806,7 @@@@@@@@@@@@ F:        include/uapi/linux/virtio_console.
           
           VIRTIO CORE, NET AND BLOCK DRIVERS
           M:   "Michael S. Tsirkin" <mst@redhat.com>
  + +  + ++M:   Jason Wang <jasowang@redhat.com>
           L:   virtualization@lists.linux-foundation.org
           S:   Maintained
           F:   Documentation/devicetree/bindings/virtio/
@@@@@@@@@@@@ -12831,7 -12831,7 -12685,6 -12829,7 -12801,6 -12831,7 -12831,7 -12685,6 -12835,7 -12801,6 -12801,6 +12837,7 @@@@@@@@@@@@ F:        include/uapi/linux/virtio_gpu.
           
           VIRTIO HOST (VHOST)
           M:   "Michael S. Tsirkin" <mst@redhat.com>
  + +  + ++M:   Jason Wang <jasowang@redhat.com>
           L:   kvm@vger.kernel.org
           L:   virtualization@lists.linux-foundation.org
           L:   netdev@vger.kernel.org
@@@@@@@@@@@@ -13225,7 -13225,7 -13078,6 -13223,7 -13194,7 -13225,7 -13225,7 -13078,6 -13229,7 -13194,7 -13194,7 +13231,7 @@@@@@@@@@@@ F:        arch/arm64/include/asm/xen
           
           XEN NETWORK BACKEND DRIVER
           M:   Wei Liu <wei.liu2@citrix.com>
  +    +   M:   Paul Durrant <paul.durrant@citrix.com>
           L:   xen-devel@lists.xenproject.org (moderated for non-subscribers)
           L:   netdev@vger.kernel.org
           S:   Supported
diff --combined drivers/hid/Kconfig
index f8f251c20e2dd9e92d5505adcf923858046f1bce,a5b3902fb266402aa7833d4550bc5a33b3da4257,cd4599c0523bf62e2c4ebd886c51763fb6307bb5,cd4599c0523bf62e2c4ebd886c51763fb6307bb5,1530d28ecc617a6562186edf50edbc18574ee7b9,cd4599c0523bf62e2c4ebd886c51763fb6307bb5,cd4599c0523bf62e2c4ebd886c51763fb6307bb5,cd4599c0523bf62e2c4ebd886c51763fb6307bb5,91025b3ff18de2b27da3d123bffbd83491b50760,cd4599c0523bf62e2c4ebd886c51763fb6307bb5,cd4599c0523bf62e2c4ebd886c51763fb6307bb5..4070b7386e9dea9965cc49ab077eb64ffc1f2455
@@@@@@@@@@@@ -138,7 -138,7 -138,7 -138,7 -138,7 -138,7 -138,7 -138,7 -138,7 -138,7 -138,7 +138,7 @@@@@@@@@@@@ config HID_ASU
                tristate "Asus"
                depends on I2C_HID
                ---help---
 ----------     Support for Asus notebook built-in keyboard via i2c.
 ++++++++++     Support for Asus notebook built-in keyboard and touchpad via i2c.
           
                Supported devices:
                - EeeBook X205TA
@@@@@@@@@@@@ -214,7 -214,7 -214,7 -214,7 -214,7 -214,7 -214,7 -214,7 -214,7 -214,7 -214,7 +214,7 @@@@@@@@@@@@ config HID_CMEDI
           
           config HID_CP2112
                tristate "Silicon Labs CP2112 HID USB-to-SMBus Bridge support"
- ---------     depends on USB_HID && I2C && GPIOLIB
+ +++++++++     depends on USB_HID && I2C && GPIOLIB && GPIOLIB_IRQCHIP
                ---help---
                Support for Silicon Labs CP2112 HID USB to SMBus Master Bridge.
                This is a HID device driver which registers as an i2c adapter
@@@@@@@@@@@@ -512,6 -512,6 -512,6 -512,6 -512,14 -512,6 -512,6 -512,6 -512,6 -512,6 -512,6 +512,14 @@@@@@@@@@@@ config HID_MAGICMOUS
                Say Y here if you want support for the multi-touch features of the
                Apple Wireless "Magic" Mouse and the Apple Wireless "Magic" Trackpad.
           
++++ ++++++config HID_MAYFLASH
++++ ++++++     tristate "Mayflash game controller adapter force feedback"
++++ ++++++     depends on HID
++++ ++++++     select INPUT_FF_MEMLESS
++++ ++++++     ---help---
++++ ++++++     Say Y here if you have HJZ Mayflash PS3 game controller adapters
++++ ++++++     and want to enable force feedback support.
++++ ++++++
           config HID_MICROSOFT
                tristate "Microsoft non-fully HID-compliant devices"
                depends on HID
@@@@@@@@@@@@ -861,6 -861,6 -861,6 -861,6 -869,6 -861,6 -861,6 -861,6 -861,13 -861,6 -861,6 +869,13 @@@@@@@@@@@@ config THRUSTMASTER_F
                  a THRUSTMASTER Dual Trigger 3-in-1 or a THRUSTMASTER Ferrari GT
                  Rumble Force or Force Feedback Wheel.
           
++++++++ ++config HID_UDRAW_PS3
++++++++ ++     tristate "THQ PS3 uDraw tablet"
++++++++ ++     depends on HID
++++++++ ++     ---help---
++++++++ ++       Say Y here if you want to use the THQ uDraw gaming tablet for
++++++++ ++       the PS3.
++++++++ ++
           config HID_WACOM
                tristate "Wacom Intuos/Graphire tablet support (USB)"
                depends on HID
diff --combined drivers/hid/Makefile
index 86b2b5785fd220974a0fe9814957e799e5bcec6a,86b2b5785fd220974a0fe9814957e799e5bcec6a,86b2b5785fd220974a0fe9814957e799e5bcec6a,86b2b5785fd220974a0fe9814957e799e5bcec6a,c0453f196c0689bfc8c20d2456620be10db95e2a,86b2b5785fd220974a0fe9814957e799e5bcec6a,86b2b5785fd220974a0fe9814957e799e5bcec6a,86b2b5785fd220974a0fe9814957e799e5bcec6a,b4ed502050b715ae9f9553a99599909d9d355056,86b2b5785fd220974a0fe9814957e799e5bcec6a,86b2b5785fd220974a0fe9814957e799e5bcec6a..4d111f23e801c28151a58a7e6745d8332758db76
@@@@@@@@@@@@ -58,6 -58,6 -58,6 -58,6 -58,7 -58,6 -58,6 -58,6 -58,6 -58,6 -58,6 +58,7 @@@@@@@@@@@@ obj-$(CONFIG_HID_LOGITECH)    += hid-logit
           obj-$(CONFIG_HID_LOGITECH_DJ)        += hid-logitech-dj.o
           obj-$(CONFIG_HID_LOGITECH_HIDPP)     += hid-logitech-hidpp.o
           obj-$(CONFIG_HID_MAGICMOUSE) += hid-magicmouse.o
++++ ++++++obj-$(CONFIG_HID_MAYFLASH)   += hid-mf.o
           obj-$(CONFIG_HID_MICROSOFT)  += hid-microsoft.o
           obj-$(CONFIG_HID_MONTEREY)   += hid-monterey.o
           obj-$(CONFIG_HID_MULTITOUCH) += hid-multitouch.o
@@@@@@@@@@@@ -96,6 -96,6 -96,6 -96,6 -97,6 -96,6 -96,6 -96,6 -96,7 -96,6 -96,6 +97,7 @@@@@@@@@@@@ obj-$(CONFIG_HID_TIVO)                += hid-tivo.
           obj-$(CONFIG_HID_TOPSEED)    += hid-topseed.o
           obj-$(CONFIG_HID_TWINHAN)    += hid-twinhan.o
           obj-$(CONFIG_HID_UCLOGIC)    += hid-uclogic.o
++++++++ ++obj-$(CONFIG_HID_UDRAW_PS3)  += hid-udraw-ps3.o
           obj-$(CONFIG_HID_LED)                += hid-led.o
           obj-$(CONFIG_HID_XINMO)              += hid-xinmo.o
           obj-$(CONFIG_HID_ZEROPLUS)   += hid-zpff.o
diff --combined drivers/hid/hid-core.c
index 689cd9cf502543c8c0162c8b9bdd08c9fcff86b4,2b89c701076f3eadc9c572015c3d20cfcfab6bd1,2b89c701076f3eadc9c572015c3d20cfcfab6bd1,2b89c701076f3eadc9c572015c3d20cfcfab6bd1,39694a5147267b09a78db5b2a5142503a83d22f2,a5dd7e63ada3a7f81f8ffd29c67c656dc49b6a50,2b89c701076f3eadc9c572015c3d20cfcfab6bd1,1ed841b149e8d9e47fe1d99cf129c73a7162436e,3611ec77ddb9fcab4da159ec215b938c2d68ea24,1bbe32966d21a4318f18ee2bf9713e39c4a53232,2b89c701076f3eadc9c572015c3d20cfcfab6bd1..cff060b56da9d6cb8cb138657cf4efca7debef61
@@@@@@@@@@@@ -727,8 -727,8 -727,8 -727,8 -727,8 -727,7 -727,8 -727,8 -727,8 -727,10 -727,8 +727,9 @@@@@@@@@@@@ static void hid_scan_collection(struct 
                    (hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 ||
                     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2 ||
                     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP ||
+++++++++ +          hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 ||
+++++++++ +          hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2 ||
                     hid->product == USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP ||
----- -----          hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 ||
                     hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
                    hid->group == HID_GROUP_MULTITOUCH)
                        hid->group = HID_GROUP_GENERIC;
@@@@@@@@@@@@ -1857,7 -1857,6 -1857,6 -1857,6 -1857,6 -1856,6 -1857,6 -1857,6 -1857,6 -1859,6 -1857,6 +1858,7 @@@@@@@@@@@@ static const struct hid_device_id hid_h
                { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
                { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
                { HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_NOTEBOOK_KEYBOARD) },
 ++++++++++     { HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_TOUCHPAD) },
                { HID_USB_DEVICE(USB_VENDOR_ID_AUREAL, USB_DEVICE_ID_AUREAL_W01RN) },
                { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) },
                { HID_USB_DEVICE(USB_VENDOR_ID_BETOP_2185BFM, 0x2208) },
                { HID_USB_DEVICE(USB_VENDOR_ID_DELCOM, USB_DEVICE_ID_DELCOM_VISUAL_IND) },
                { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, 0x0006) },
                { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, 0x0011) },
++++ ++++++#if IS_ENABLED(CONFIG_HID_MAYFLASH)
++++ ++++++     { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3) },
++++ ++++++#endif
                { HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, USB_DEVICE_ID_DREAM_CHEEKY_WN) },
                { HID_USB_DEVICE(USB_VENDOR_ID_DREAM_CHEEKY, USB_DEVICE_ID_DREAM_CHEEKY_FA) },
                { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
+++++++++ +     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4) },
+++++++++ +     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP) },
----- -----     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_7K) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_600) },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1) },
                { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
                { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER) },
                { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER) },
+++++++ +++     { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_2) },
+++++++ +++     { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_2) },
+++++++ +++     { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE) },
                { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) },
                { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE) },
                { HID_USB_DEVICE(USB_VENDOR_ID_SINO_LITE, USB_DEVICE_ID_SINO_LITE_CONTROLLER) },
                { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_WP1062) },
                { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_WIRELESS_TABLET_TWHL850) },
                { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60) },
++++++++ ++     { HID_USB_DEVICE(USB_VENDOR_ID_THQ, USB_DEVICE_ID_THQ_PS3_UDRAW) },
                { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_YIYNOVA_TABLET) },
                { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_81) },
                { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_45) },
diff --combined drivers/hid/hid-ids.h
index b531bd408f938859eae9f45568cecf965cc7b12c,575aa65436d182c31fb874a432807688747dd785,c36ec6d01b8b980fd59a8729598cc78abf7ed576,575aa65436d182c31fb874a432807688747dd785,642e648616542ea7bd75f9b00a2d8e8a1a87306e,10d15359cbaed19c5aaa4ddb78e92fb289153f08,575aa65436d182c31fb874a432807688747dd785,dc7e39432320542987decf08b3075f4645d4e512,e8166568a900c2408f4c91acc27a5bed35aedaa6,5198a45254663e90bbe011b99e07e0a07a012096,6cfb5cacc2533b3f5a21c488ff7257c44d3b43df..ec277b96eaa1b33461aa7702f38864598b910e59
           #define USB_VENDOR_ID_AKAI           0x2011
           #define USB_DEVICE_ID_AKAI_MPKMINI2  0x0715
           
  +    +   #define USB_VENDOR_ID_AKAI_09E8              0x09E8
  +    +   #define USB_DEVICE_ID_AKAI_09E8_MIDIMIX      0x0031
  +    +   
           #define USB_VENDOR_ID_ALCOR          0x058f
           #define USB_DEVICE_ID_ALCOR_USBRS232 0x9720
           
           #define USB_DEVICE_ID_ASUSTEK_LCM    0x1726
           #define USB_DEVICE_ID_ASUSTEK_LCM2   0x175b
           #define USB_DEVICE_ID_ASUSTEK_NOTEBOOK_KEYBOARD      0x8585
 ++++++++++#define USB_DEVICE_ID_ASUSTEK_TOUCHPAD       0x0101
           
           #define USB_VENDOR_ID_ATEN           0x0557
           #define USB_DEVICE_ID_ATEN_UC100KM   0x2004
           #define USB_DEVICE_ID_ATEN_4PORTKVM  0x2205
           #define USB_DEVICE_ID_ATEN_4PORTKVMC 0x2208
           #define USB_DEVICE_ID_ATEN_CS682     0x2213
  + +  + ++#define USB_DEVICE_ID_ATEN_CS692     0x8021
           
           #define USB_VENDOR_ID_ATMEL          0x03eb
           #define USB_DEVICE_ID_ATMEL_MULTITOUCH       0x211c
           #define USB_VENDOR_ID_DMI            0x0c0b
           #define USB_DEVICE_ID_DMI_ENC                0x5fab
           
---- ------#define USB_VENDOR_ID_DRAGONRISE     0x0079
---- ------#define USB_DEVICE_ID_DRAGONRISE_WIIU        0x1800
++++ ++++++#define USB_VENDOR_ID_DRAGONRISE             0x0079
++++ ++++++#define USB_DEVICE_ID_DRAGONRISE_WIIU                0x1800
++++ ++++++#define USB_DEVICE_ID_DRAGONRISE_PS3         0x1801
++++ ++++++#define USB_DEVICE_ID_DRAGONRISE_GAMECUBE    0x1843
           
           #define USB_VENDOR_ID_DWAV           0x0eef
           #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001
           #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3    0x07dc
           #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2  0x07e2
           #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
+++++++++ +#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 0x07e4
+++++++++ +#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2 0x07e8
           #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP 0x07e9
----- -----#define USB_DEVICE_ID_MS_TYPE_COVER_3    0x07de
           #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
           
           #define USB_VENDOR_ID_MOJO           0x8282
           #define USB_DEVICE_ID_SONY_PS3_BDREMOTE              0x0306
           #define USB_DEVICE_ID_SONY_PS3_CONTROLLER    0x0268
           #define USB_DEVICE_ID_SONY_PS4_CONTROLLER    0x05c4
+++++++ +++#define USB_DEVICE_ID_SONY_PS4_CONTROLLER_2  0x09cc
+++++++ +++#define USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE     0x0ba0
           #define USB_DEVICE_ID_SONY_MOTION_CONTROLLER 0x03d5
           #define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER     0x042f
           #define USB_DEVICE_ID_SONY_BUZZ_CONTROLLER           0x0002
           #define USB_VENDOR_ID_THINGM         0x27b8
           #define USB_DEVICE_ID_BLINK1         0x01ed
           
++++++++ ++#define USB_VENDOR_ID_THQ            0x20d6
++++++++ ++#define USB_DEVICE_ID_THQ_PS3_UDRAW  0xcb17
++++++++ ++
           #define USB_VENDOR_ID_THRUSTMASTER   0x044f
           
           #define USB_VENDOR_ID_TIVO           0x150a
           #define USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH  0x0500
           #define USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET      0x0502
           
++ ++++++++#define      USB_VENDOR_ID_WEIDA             0x2575
++ ++++++++#define      USB_DEVICE_ID_WEIDA_8752        0xC300
++ ++++++++#define      USB_DEVICE_ID_WEIDA_8755        0xC301
++ ++++++++
           #define USB_VENDOR_ID_WISEGROUP              0x0925
           #define USB_DEVICE_ID_SMARTJOY_PLUS  0x0005
           #define USB_DEVICE_ID_SUPER_JOY_BOX_3        0x8888
diff --combined drivers/hid/hid-input.c
index fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,55db584595316dc096f0130fe6e6ad6cf7055345,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,fb9ace1cef8b50cbcb52955eb41f4490cb7aff7f,c4e935b5fe7469bc1dab59ee1d74d0b21868c6d5..d05f903c7614530625d9adc696cdc7f3661abe15
@@@@@@@@@@@@ -253,6 -253,6 -253,6 -253,6 -253,6 -253,6 -253,6 -253,6 -253,6 -253,6 -253,7 +253,7 @@@@@@@@@@@@ __s32 hidinput_calc_abs_res(const struc
                case ABS_RX:
                case ABS_RY:
                case ABS_RZ:
++++++++++      case ABS_WHEEL:
                case ABS_TILT_X:
                case ABS_TILT_Y:
                        if (field->unit == 0x14) {              /* If degrees */
@@@@@@@@@@@@ -1468,6 -1468,6 -1468,6 -1468,6 -1468,6 -1468,31 -1468,6 -1468,6 -1468,6 -1468,6 -1469,6 +1469,31 @@@@@@@@@@@@ static void hidinput_cleanup_hidinput(s
                kfree(hidinput);
           }
           
+++++ +++++static struct hid_input *hidinput_match(struct hid_report *report)
+++++ +++++{
+++++ +++++     struct hid_device *hid = report->device;
+++++ +++++     struct hid_input *hidinput;
+++++ +++++
+++++ +++++     list_for_each_entry(hidinput, &hid->inputs, list) {
+++++ +++++             if (hidinput->report &&
+++++ +++++                 hidinput->report->id == report->id)
+++++ +++++                     return hidinput;
+++++ +++++     }
+++++ +++++
+++++ +++++     return NULL;
+++++ +++++}
+++++ +++++
+++++ +++++static inline void hidinput_configure_usages(struct hid_input *hidinput,
+++++ +++++                                          struct hid_report *report)
+++++ +++++{
+++++ +++++     int i, j;
+++++ +++++
+++++ +++++     for (i = 0; i < report->maxfield; i++)
+++++ +++++             for (j = 0; j < report->field[i]->maxusage; j++)
+++++ +++++                     hidinput_configure_usage(hidinput, report->field[i],
+++++ +++++                                              report->field[i]->usage + j);
+++++ +++++}
+++++ +++++
           /*
            * Register the input device; print a message.
            * Configure the input layer interface
@@@@@@@@@@@@ -1478,8 -1478,8 -1478,8 -1478,8 -1478,8 -1503,8 -1478,8 -1478,8 -1478,8 -1478,8 -1479,8 +1504,8 @@@@@@@@@@@@ int hidinput_connect(struct hid_device 
           {
                struct hid_driver *drv = hid->driver;
                struct hid_report *report;
----- -----     struct hid_input *hidinput = NULL;
----- -----     int i, j, k;
+++++ +++++     struct hid_input *next, *hidinput = NULL;
+++++ +++++     int i, k;
           
                INIT_LIST_HEAD(&hid->inputs);
                INIT_WORK(&hid->led_work, hidinput_led_worker);
                                if (!report->maxfield)
                                        continue;
           
+++++ +++++                     /*
+++++ +++++                      * Find the previous hidinput report attached
+++++ +++++                      * to this report id.
+++++ +++++                      */
+++++ +++++                     if (hid->quirks & HID_QUIRK_MULTI_INPUT)
+++++ +++++                             hidinput = hidinput_match(report);
+++++ +++++
                                if (!hidinput) {
                                        hidinput = hidinput_allocate(hid);
                                        if (!hidinput)
                                                goto out_unwind;
                                }
           
----- -----                     for (i = 0; i < report->maxfield; i++)
----- -----                             for (j = 0; j < report->field[i]->maxusage; j++)
----- -----                                     hidinput_configure_usage(hidinput, report->field[i],
----- -----                                                              report->field[i]->usage + j);
----- -----
----- -----                     if ((hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) &&
----- -----                         !hidinput_has_been_populated(hidinput))
----- -----                             continue;
+++++ +++++                     hidinput_configure_usages(hidinput, report);
           
----- -----                     if (hid->quirks & HID_QUIRK_MULTI_INPUT) {
----- -----                             /* This will leave hidinput NULL, so that it
----- -----                              * allocates another one if we have more inputs on
----- -----                              * the same interface. Some devices (e.g. Happ's
----- -----                              * UGCI) cram a lot of unrelated inputs into the
----- -----                              * same interface. */
+++++ +++++                     if (hid->quirks & HID_QUIRK_MULTI_INPUT)
                                        hidinput->report = report;
----- -----                             if (drv->input_configured &&
----- -----                                 drv->input_configured(hid, hidinput))
----- -----                                     goto out_cleanup;
----- -----                             if (input_register_device(hidinput->input))
----- -----                                     goto out_cleanup;
----- -----                             hidinput = NULL;
----- -----                     }
                        }
                }
           
----- -----     if (hidinput && (hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) &&
----- -----         !hidinput_has_been_populated(hidinput)) {
----- -----             /* no need to register an input device not populated */
----- -----             hidinput_cleanup_hidinput(hid, hidinput);
----- -----             hidinput = NULL;
+++++ +++++     list_for_each_entry_safe(hidinput, next, &hid->inputs, list) {
+++++ +++++             if ((hid->quirks & HID_QUIRK_NO_EMPTY_INPUT) &&
+++++ +++++                 !hidinput_has_been_populated(hidinput)) {
+++++ +++++                     /* no need to register an input device not populated */
+++++ +++++                     hidinput_cleanup_hidinput(hid, hidinput);
+++++ +++++                     continue;
+++++ +++++             }
+++++ +++++
+++++ +++++             if (drv->input_configured &&
+++++ +++++                 drv->input_configured(hid, hidinput))
+++++ +++++                     goto out_unwind;
+++++ +++++             if (input_register_device(hidinput->input))
+++++ +++++                     goto out_unwind;
+++++ +++++             hidinput->registered = true;
                }
           
                if (list_empty(&hid->inputs)) {
                        goto out_unwind;
                }
           
----- -----     if (hidinput) {
----- -----             if (drv->input_configured &&
----- -----                 drv->input_configured(hid, hidinput))
----- -----                     goto out_cleanup;
----- -----             if (input_register_device(hidinput->input))
----- -----                     goto out_cleanup;
----- -----     }
----- -----
                return 0;
           
----- -----out_cleanup:
----- -----     list_del(&hidinput->list);
----- -----     input_free_device(hidinput->input);
----- -----     kfree(hidinput);
           out_unwind:
                /* unwind the ones we already registered */
                hidinput_disconnect(hid);
@@@@@@@@@@@@ -1583,7 -1583,7 -1583,7 -1583,7 -1583,7 -1593,10 -1583,7 -1583,7 -1583,7 -1583,7 -1584,7 +1594,10 @@@@@@@@@@@@ void hidinput_disconnect(struct hid_dev
           
                list_for_each_entry_safe(hidinput, next, &hid->inputs, list) {
                        list_del(&hidinput->list);
----- -----             input_unregister_device(hidinput->input);
+++++ +++++             if (hidinput->registered)
+++++ +++++                     input_unregister_device(hidinput->input);
+++++ +++++             else
+++++ +++++                     input_free_device(hidinput->input);
                        kfree(hidinput);
                }
           
index c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,ba02667beb804420f9e2a0d66ca1f34498c61a03,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525,5e592f04095b3fd3a694067d1c21d7cc4032ed3f,c6cd392e9f99c6cba2c5948bc2c42f2cf066e525..74b7b84a0420b7e40ec0f11868d1d3ee187ebe6a
@@@@@@@@@@@@ -280,10 -280,10 -280,10 -280,10 -280,10 -280,8 -280,10 -280,10 -280,10 -280,14 -280,10 +280,12 @@@@@@@@@@@@ static const struct hid_device_id ms_de
                        .driver_data = MS_HIDINPUT },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP),
                        .driver_data = MS_HIDINPUT },
----- --- -     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP),
+++++++++ +     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4),
+++++++++ +             .driver_data = MS_HIDINPUT },
+++++++++ +     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2),
     +                  .driver_data = MS_HIDINPUT },
----- --- -     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3),
+++++ +++ +     { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP),
                        .driver_data = MS_HIDINPUT },
         -      { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3),
         -              .driver_data = MS_HIDINPUT },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER),
                        .driver_data = MS_HIDINPUT },
                { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_KEYBOARD),
index fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0,89e9032ab1e7446c37b5d4d19c6dfc3ec6498bfd,a65a4c5894a503c32346b74fae083f29eb255c9c,fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0,fb6f1f4472795700c1f12889c405b9350b4ebcb0..6dca668068440213d837f69c7763bddbe91e561b
@@@@@@@@@@@@ -108,6 -108,6 -108,6 -108,6 -108,6 -108,7 -108,6 -108,6 -108,6 -108,6 -108,6 +108,7 @@@@@@@@@@@@ struct mt_device 
                int cc_value_index;     /* contact count value index in the field */
                unsigned last_slot_field;       /* the last field of a slot */
                unsigned mt_report_id;  /* the report ID of the multitouch device */
+++++ +++++     unsigned long initial_quirks;   /* initial quirks state */
                __s16 inputmode;        /* InputMode HID feature, -1 if non-existent */
                __s16 inputmode_index;  /* InputMode HID feature index in the report */
                __s16 maxcontact_report_id;     /* Maximum Contact Number HID feature,
@@@@@@@@@@@@ -318,13 -318,13 -318,13 -318,13 -318,13 -319,10 -318,13 -318,13 -318,13 -318,13 -318,13 +319,10 @@@@@@@@@@@@ static void mt_get_feature(struct hid_d
                u8 *buf;
           
                /*
----- -----      * Only fetch the feature report if initial reports are not already
----- -----      * been retrieved. Currently this is only done for Windows 8 touch
----- -----      * devices.
+++++ +++++      * Do not fetch the feature report if the device has been explicitly
+++++ +++++      * marked as non-capable.
                 */
----- -----     if (!(hdev->quirks & HID_QUIRK_NO_INIT_REPORTS))
----- -----             return;
----- -----     if (td->mtclass.name != MT_CLS_WIN_8)
+++++ +++++     if (td->initial_quirks & HID_QUIRK_NO_INIT_REPORTS)
                        return;
           
                buf = hid_alloc_report_buf(report, GFP_KERNEL);
@@@@@@@@@@@@ -567,6 -567,6 -567,6 -567,6 -567,6 -565,6 -567,14 -567,6 -567,6 -567,6 -567,6 +565,14 @@@@@@@@@@@@ static int mt_touch_input_mapping(struc
           
                case HID_UP_BUTTON:
                        code = BTN_MOUSE + ((usage->hid - 1) & HID_USAGE);
++++++ ++++             /*
++++++ ++++              * MS PTP spec says that external buttons left and right have
++++++ ++++              * usages 2 and 3.
++++++ ++++              */
++++++ ++++             if (cls->name == MT_CLS_WIN_8 &&
++++++ ++++                 field->application == HID_DG_TOUCHPAD &&
++++++ ++++                 (usage->hid & HID_USAGE) > 1)
++++++ ++++                     code--;
                        hid_map_usage(hi, usage, bit, max, EV_KEY, code);
                        input_set_capability(hi->input, EV_KEY, code);
                        return 1;
@@@@@@@@@@@@ -842,7 -842,7 -842,7 -842,7 -842,7 -840,9 -850,7 -842,7 -842,7 -842,7 -842,7 +848,9 @@@@@@@@@@@@ static int mt_input_mapping(struct hid_
                if (!td->mtclass.export_all_inputs &&
                    field->application != HID_DG_TOUCHSCREEN &&
                    field->application != HID_DG_PEN &&
----- -----         field->application != HID_DG_TOUCHPAD)
+++++ +++++         field->application != HID_DG_TOUCHPAD &&
+++++ +++++         field->application != HID_GD_KEYBOARD &&
+++++ +++++         field->application != HID_CP_CONSUMER_CONTROL)
                        return -1;
           
                /*
@@@@@@@@@@@@ -1083,36 -1083,36 -1083,36 -1083,36 -1083,36 -1083,6 -1091,36 -1083,36 -1083,36 -1083,36 -1083,36 +1091,6 @@@@@@@@@@@@ static int mt_probe(struct hid_device *
                        }
                }
           
----- -----     /* This allows the driver to correctly support devices
----- -----      * that emit events over several HID messages.
----- -----      */
----- -----     hdev->quirks |= HID_QUIRK_NO_INPUT_SYNC;
----- -----
----- -----     /*
----- -----      * This allows the driver to handle different input sensors
----- -----      * that emits events through different reports on the same HID
----- -----      * device.
----- -----      */
----- -----     hdev->quirks |= HID_QUIRK_MULTI_INPUT;
----- -----     hdev->quirks |= HID_QUIRK_NO_EMPTY_INPUT;
----- -----
----- -----     /*
----- -----      * Handle special quirks for Windows 8 certified devices.
----- -----      */
----- -----     if (id->group == HID_GROUP_MULTITOUCH_WIN_8)
----- -----             /*
----- -----              * Some multitouch screens do not like to be polled for input
----- -----              * reports. Fortunately, the Win8 spec says that all touches
----- -----              * should be sent during each report, making the initialization
----- -----              * of input reports unnecessary.
----- -----              *
----- -----              * In addition some touchpads do not behave well if we read
----- -----              * all feature reports from them. Instead we prevent
----- -----              * initial report fetching and then selectively fetch each
----- -----              * report we are interested in.
----- -----              */
----- -----             hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
----- -----
                td = devm_kzalloc(&hdev->dev, sizeof(struct mt_device), GFP_KERNEL);
                if (!td) {
                        dev_err(&hdev->dev, "cannot allocate multitouch data\n");
                if (id->vendor == HID_ANY_ID && id->product == HID_ANY_ID)
                        td->serial_maybe = true;
           
+++++ +++++     /*
+++++ +++++      * Store the initial quirk state
+++++ +++++      */
+++++ +++++     td->initial_quirks = hdev->quirks;
+++++ +++++
+++++ +++++     /* This allows the driver to correctly support devices
+++++ +++++      * that emit events over several HID messages.
+++++ +++++      */
+++++ +++++     hdev->quirks |= HID_QUIRK_NO_INPUT_SYNC;
+++++ +++++
+++++ +++++     /*
+++++ +++++      * This allows the driver to handle different input sensors
+++++ +++++      * that emits events through different reports on the same HID
+++++ +++++      * device.
+++++ +++++      */
+++++ +++++     hdev->quirks |= HID_QUIRK_MULTI_INPUT;
+++++ +++++     hdev->quirks |= HID_QUIRK_NO_EMPTY_INPUT;
+++++ +++++
+++++ +++++     /*
+++++ +++++      * Some multitouch screens do not like to be polled for input
+++++ +++++      * reports. Fortunately, the Win8 spec says that all touches
+++++ +++++      * should be sent during each report, making the initialization
+++++ +++++      * of input reports unnecessary. For Win7 devices, well, let's hope
+++++ +++++      * they will still be happy (this is only be a problem if a touch
+++++ +++++      * was already there while probing the device).
+++++ +++++      *
+++++ +++++      * In addition some touchpads do not behave well if we read
+++++ +++++      * all feature reports from them. Instead we prevent
+++++ +++++      * initial report fetching and then selectively fetch each
+++++ +++++      * report we are interested in.
+++++ +++++      */
+++++ +++++     hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
+++++ +++++
                ret = hid_parse(hdev);
                if (ret != 0)
                        return ret;
@@@@@@@@@@@@ -1204,8 -1204,8 -1204,8 -1204,8 -1204,8 -1207,11 -1212,8 -1204,8 -1204,8 -1204,8 -1204,8 +1215,11 @@@@@@@@@@@@ static int mt_resume(struct hid_device 
           
           static void mt_remove(struct hid_device *hdev)
           {
+++++ +++++     struct mt_device *td = hid_get_drvdata(hdev);
+++++ +++++
                sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group);
                hid_hw_stop(hdev);
+++++ +++++     hdev->quirks = td->initial_quirks;
           }
           
           /*
index 0c9ac4d5d85007e52e45c7f2a3c413c304901264,0c9ac4d5d85007e52e45c7f2a3c413c304901264,e2517c11e0ee053c68ff27c5f11325bcf601ba2a,b9bf04a3f267df40dccdb25eea9e4e2df86043b0,e2517c11e0ee053c68ff27c5f11325bcf601ba2a,0c9ac4d5d85007e52e45c7f2a3c413c304901264,0c9ac4d5d85007e52e45c7f2a3c413c304901264,e2517c11e0ee053c68ff27c5f11325bcf601ba2a,0c9ac4d5d85007e52e45c7f2a3c413c304901264,37f069749672939973d83b89589dd9010e93dfdf,e2517c11e0ee053c68ff27c5f11325bcf601ba2a..842d8416a7a6f0c8d585eacece02aa319ea20ce3
           #include <linux/jiffies.h>
           #include "client.h"
           #include "hw-ish.h"
--- -------#include "utils.h"
           #include "hbm.h"
           
           /* For FW reset flow */
@@@@@@@@@@@@ -310,6 -310,6 -310,6 -309,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,7 -310,6 +309,7 @@@@@@@@@@@@ static int write_ipc_from_queue(struct 
                                                        ((uint32_t)tv_utc.tv_usec);
                        ts_format.ts1_source = HOST_SYSTEM_TIME_USEC;
                        ts_format.ts2_source = HOST_UTC_TIME_USEC;
+++++++++ +             ts_format.reserved = 0;
           
                        time_update.primary_host_time = usec_system;
                        time_update.secondary_host_time = usec_utc;
@@@@@@@@@@@@ -427,6 -427,6 -427,6 -426,59 -427,6 -427,6 -427,6 -427,6 -427,6 -428,6 -427,6 +427,59 @@@@@@@@@@@@ static int ipc_send_mng_msg(struct isht
                        sizeof(uint32_t) + size);
           }
           
+++ +++++++#define WAIT_FOR_FW_RDY                      0x1
+++ +++++++#define WAIT_FOR_INPUT_RDY           0x2
+++ +++++++
+++ +++++++/**
+++ +++++++ * timed_wait_for_timeout() - wait special event with timeout
+++ +++++++ * @dev: ISHTP device pointer
+++ +++++++ * @condition: indicate the condition for waiting
+++ +++++++ * @timeinc: time slice for every wait cycle, in ms
+++ +++++++ * @timeout: time in ms for timeout
+++ +++++++ *
+++ +++++++ * This function will check special event to be ready in a loop, the loop
+++ +++++++ * period is specificd in timeinc. Wait timeout will causes failure.
+++ +++++++ *
+++ +++++++ * Return: 0 for success else failure code
+++ +++++++ */
+++ +++++++static int timed_wait_for_timeout(struct ishtp_device *dev, int condition,
+++ +++++++                             unsigned int timeinc, unsigned int timeout)
+++ +++++++{
+++ +++++++     bool complete = false;
+++ +++++++     int ret;
+++ +++++++
+++ +++++++     do {
+++ +++++++             if (condition == WAIT_FOR_FW_RDY) {
+++ +++++++                     complete = ishtp_fw_is_ready(dev);
+++ +++++++             } else if (condition == WAIT_FOR_INPUT_RDY) {
+++ +++++++                     complete = ish_is_input_ready(dev);
+++ +++++++             } else {
+++ +++++++                     ret = -EINVAL;
+++ +++++++                     goto out;
+++ +++++++             }
+++ +++++++
+++ +++++++             if (!complete) {
+++ +++++++                     unsigned long left_time;
+++ +++++++
+++ +++++++                     left_time = msleep_interruptible(timeinc);
+++ +++++++                     timeout -= (timeinc - left_time);
+++ +++++++             }
+++ +++++++     } while (!complete && timeout > 0);
+++ +++++++
+++ +++++++     if (complete)
+++ +++++++             ret = 0;
+++ +++++++     else
+++ +++++++             ret = -EBUSY;
+++ +++++++
+++ +++++++out:
+++ +++++++     return ret;
+++ +++++++}
+++ +++++++
+++ +++++++#define TIME_SLICE_FOR_FW_RDY_MS             100
+++ +++++++#define TIME_SLICE_FOR_INPUT_RDY_MS          100
+++ +++++++#define TIMEOUT_FOR_FW_RDY_MS                        2000
+++ +++++++#define TIMEOUT_FOR_INPUT_RDY_MS             2000
+++ +++++++
           /**
            * ish_fw_reset_handler() - FW reset handler
            * @dev: ishtp device pointer
@@@@@@@@@@@@ -456,8 -456,8 -456,8 -508,8 -456,8 -456,8 -456,8 -456,8 -456,8 -457,8 -456,8 +509,8 @@@@@@@@@@@@ static int ish_fw_reset_handler(struct 
                ishtp_reset_handler(dev);
           
                if (!ish_is_input_ready(dev))
--- -------             timed_wait_for_timeout(WAIT_FOR_SEND_SLICE,
--- -------                     ish_is_input_ready(dev), (2 * HZ));
+++ +++++++             timed_wait_for_timeout(dev, WAIT_FOR_INPUT_RDY,
+++ +++++++                     TIME_SLICE_FOR_INPUT_RDY_MS, TIMEOUT_FOR_INPUT_RDY_MS);
           
                /* ISH FW is dead */
                if (!ish_is_input_ready(dev))
                                 sizeof(uint32_t));
           
                /* Wait for ISH FW'es ILUP and ISHTP_READY */
--- -------     timed_wait_for_timeout(WAIT_FOR_SEND_SLICE, ishtp_fw_is_ready(dev),
--- -------             (2 * HZ));
+++ +++++++     timed_wait_for_timeout(dev, WAIT_FOR_FW_RDY,
+++ +++++++                     TIME_SLICE_FOR_FW_RDY_MS, TIMEOUT_FOR_FW_RDY_MS);
                if (!ishtp_fw_is_ready(dev)) {
                        /* ISH FW is dead */
                        uint32_t        ish_status;
                return  0;
           }
           
+++ +++++++#define TIMEOUT_FOR_HW_RDY_MS                        300
+++ +++++++
           /**
            * ish_fw_reset_work_fn() - FW reset worker function
            * @unused: not used
@@@@@@@@@@@@ -500,7 -500,7 -500,7 -554,7 -500,7 -500,7 -500,7 -500,7 -500,7 -501,7 -500,7 +555,7 @@@@@@@@@@@@ static void fw_reset_work_fn(struct wor
                rv = ish_fw_reset_handler(ishtp_dev);
                if (!rv) {
                        /* ISH is ILUP & ISHTP-ready. Restart ISHTP */
--- -------             schedule_timeout(HZ / 3);
+++ +++++++             msleep_interruptible(TIMEOUT_FOR_HW_RDY_MS);
                        ishtp_dev->recvd_hw_ready = 1;
                        wake_up_interruptible(&ishtp_dev->wait_hw_ready);
           
                return  IRQ_HANDLED;
           }
           
  + +  + ++/**
  + +  + ++ * ish_disable_dma() - disable dma communication between host and ISHFW
  + +  + ++ * @dev: ishtp device pointer
  + +  + ++ *
  + +  + ++ * Clear the dma enable bit and wait for dma inactive.
  + +  + ++ *
  + +  + ++ * Return: 0 for success else error code.
  + +  + ++ */
  + +  + ++static int ish_disable_dma(struct ishtp_device *dev)
  + +  + ++{
  + +  + ++     unsigned int    dma_delay;
  + +  + ++
  + +  + ++     /* Clear the dma enable bit */
  + +  + ++     ish_reg_write(dev, IPC_REG_ISH_RMP2, 0);
  + +  + ++
  + +  + ++     /* wait for dma inactive */
  + +  + ++     for (dma_delay = 0; dma_delay < MAX_DMA_DELAY &&
  + +  + ++             _ish_read_fw_sts_reg(dev) & (IPC_ISH_IN_DMA);
  + +  + ++             dma_delay += 5)
  + +  + ++             mdelay(5);
  + +  + ++
  + +  + ++     if (dma_delay >= MAX_DMA_DELAY) {
  + +  + ++             dev_err(dev->devc,
  + +  + ++                     "Wait for DMA inactive timeout\n");
  + +  + ++             return  -EBUSY;
  + +  + ++     }
  + +  + ++
  + +  + ++     return 0;
  + +  + ++}
  + +  + ++
  + +  + ++/**
  + +  + ++ * ish_wakeup() - wakeup ishfw from waiting-for-host state
  + +  + ++ * @dev: ishtp device pointer
  + +  + ++ *
  + +  + ++ * Set the dma enable bit and send a void message to FW,
  + +  + ++ * it wil wakeup FW from waiting-for-host state.
  + +  + ++ */
  + +  + ++static void ish_wakeup(struct ishtp_device *dev)
  + +  + ++{
  + +  + ++     /* Set dma enable bit */
  + +  + ++     ish_reg_write(dev, IPC_REG_ISH_RMP2, IPC_RMP2_DMA_ENABLED);
  + +  + ++
  + +  + ++     /*
  + +  + ++      * Send 0 IPC message so that ISH FW wakes up if it was already
  + +  + ++      * asleep.
  + +  + ++      */
  + +  + ++     ish_reg_write(dev, IPC_REG_HOST2ISH_DRBL, IPC_DRBL_BUSY_BIT);
  + +  + ++
  + +  + ++     /* Flush writes to doorbell and REMAP2 */
  + +  + ++     ish_reg_read(dev, IPC_REG_ISH_HOST_FWSTS);
  + +  + ++}
  + +  + ++
           /**
            * _ish_hw_reset() - HW reset
            * @dev: ishtp device pointer
@@@@@@@@@@@@ -701,6 -701,6 -649,7 -755,6 -649,7 -701,6 -701,6 -649,7 -701,6 -650,7 -649,7 +756,6 @@@@@@@@@@@@ static int _ish_hw_reset(struct ishtp_d
           {
                struct pci_dev *pdev = dev->pdev;
                int     rv;
  - -  - --     unsigned int    dma_delay;
                uint16_t csr;
           
                if (!pdev)
                        return  -EINVAL;
                }
           
  - -  - --     /* Now trigger reset to FW */
  - -  - --     ish_reg_write(dev, IPC_REG_ISH_RMP2, 0);
  - -  - --
  - -  - --     for (dma_delay = 0; dma_delay < MAX_DMA_DELAY &&
  - -  - --             _ish_read_fw_sts_reg(dev) & (IPC_ISH_IN_DMA);
  - -  - --             dma_delay += 5)
  - -  - --             mdelay(5);
  - -  - --
  - -  - --     if (dma_delay >= MAX_DMA_DELAY) {
  + +  + ++     /* Disable dma communication between FW and host */
  + +  + ++     if (ish_disable_dma(dev)) {
                        dev_err(&pdev->dev,
                                "Can't reset - stuck with DMA in-progress\n");
                        return  -EBUSY;
                csr |= PCI_D0;
                pci_write_config_word(pdev, pdev->pm_cap + PCI_PM_CTRL, csr);
           
  - -  - --     ish_reg_write(dev, IPC_REG_ISH_RMP2, IPC_RMP2_DMA_ENABLED);
  - -  - --
  - -  - --     /*
  - -  - --      * Send 0 IPC message so that ISH FW wakes up if it was already
  - -  - --      * asleep
  - -  - --      */
  - -  - --     ish_reg_write(dev, IPC_REG_HOST2ISH_DRBL, IPC_DRBL_BUSY_BIT);
  - -  - --
  - -  - --     /* Flush writes to doorbell and REMAP2 */
  - -  - --     ish_reg_read(dev, IPC_REG_ISH_HOST_FWSTS);
  + +  + ++     /* Now we can enable ISH DMA operation and wakeup ISHFW */
  + +  + ++     ish_wakeup(dev);
           
                return  0;
           }
@@@@@@@@@@@@ -794,9 -794,9 -758,16 -848,9 -758,16 -794,9 -794,9 -758,16 -794,9 -759,16 -758,16 +849,9 @@@@@@@@@@@@ static int _ish_ipc_reset(struct ishtp_
           int ish_hw_start(struct ishtp_device *dev)
           {
                ish_set_host_rdy(dev);
  - -  - --     /* After that we can enable ISH DMA operation */
  - -  - --     ish_reg_write(dev, IPC_REG_ISH_RMP2, IPC_RMP2_DMA_ENABLED);
           
  - -  - --     /*
  - -  - --      * Send 0 IPC message so that ISH FW wakes up if it was already
  - -  - --      * asleep
  - -  - --      */
  - -  - --     ish_reg_write(dev, IPC_REG_HOST2ISH_DRBL, IPC_DRBL_BUSY_BIT);
  - -  - --     /* Flush write to doorbell */
  - -  - --     ish_reg_read(dev, IPC_REG_ISH_HOST_FWSTS);
  + +  + ++     /* After that we can enable ISH DMA operation and wakeup ISHFW */
  + +  + ++     ish_wakeup(dev);
           
                set_host_ready(dev);
           
@@@@@@@@@@@@ -905,21 -905,21 -876,6 -959,21 -876,6 -905,21 -905,21 -876,6 -905,21 -877,6 -876,6 +960,21 @@@@@@@@@@@@ struct ishtp_device *ish_dev_init(struc
            */
           void ish_device_disable(struct ishtp_device *dev)
           {
  + +  + ++     struct pci_dev *pdev = dev->pdev;
  + +  + ++
  + +  + ++     if (!pdev)
  + +  + ++             return;
  + +  + ++
  + +  + ++     /* Disable dma communication between FW and host */
  + +  + ++     if (ish_disable_dma(dev)) {
  + +  + ++             dev_err(&pdev->dev,
  + +  + ++                     "Can't reset - stuck with DMA in-progress\n");
  + +  + ++             return;
  + +  + ++     }
  + +  + ++
  + +  + ++     /* Put ISH to D3hot state for power saving */
  + +  + ++     pci_set_power_state(pdev, PCI_D3hot);
  + +  + ++
                dev->dev_state = ISHTP_DEV_DISABLED;
                ish_clr_host_rdy(dev);
           }
index e6cfd323babc62d653146730e4d7325ee8a24696,e6cfd323babc62d653146730e4d7325ee8a24696,0a0eca5da47d0274cca10822e3b8d6aded20b6c7,e6cfd323babc62d653146730e4d7325ee8a24696,05f6f61f0213384a73bfd67f0fc627aad31fd597,18ae715033091fac359a65bb343b7c1758cd179c,e6cfd323babc62d653146730e4d7325ee8a24696,0a0eca5da47d0274cca10822e3b8d6aded20b6c7,e6cfd323babc62d653146730e4d7325ee8a24696,a67e90a8b5be0af8802da7e46fb1aa0acd215120,354d49ea36dd9d434452cff07e2b0fb15356035e..b3e01c82af0512dce7a68e6bde908d7e3afeaba8
@@@@@@@@@@@@ -56,14 -56,14 -56,12 -56,14 -56,13 -56,14 -56,14 -56,12 -56,14 -56,13 -56,13 +56,14 @@@@@@@@@@@@ static const struct hid_blacklist 
           
                { USB_VENDOR_ID_AIREN, USB_DEVICE_ID_AIREN_SLIMPLUS, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_AKAI, USB_DEVICE_ID_AKAI_MPKMINI2, HID_QUIRK_NO_INIT_REPORTS },
  +    +        { USB_VENDOR_ID_AKAI_09E8, USB_DEVICE_ID_AKAI_09E8_MIDIMIX, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS682, HID_QUIRK_NOGET },
  + +  + ++     { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS692, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FIGHTERSTICK, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_CREATIVE_SB_OMNI_SURROUND_51, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_WIIU, HID_QUIRK_MULTI_INPUT },
++++ ++++++     { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3, HID_QUIRK_MULTI_INPUT },
++++ ++++++     { USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE, HID_QUIRK_MULTI_INPUT },
                { USB_VENDOR_ID_ELAN, HID_ANY_ID, HID_QUIRK_ALWAYS_POLL },
                { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
                { USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
+++++++++ +     { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4, HID_QUIRK_NO_INIT_REPORTS },
+++++++++ +     { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_2, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_JP, HID_QUIRK_NO_INIT_REPORTS },
----- -----     { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
                { USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS },
diff --combined include/linux/hid.h
index b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,596b9232c19e5c54221ef7c34f673cdd428c056d,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,b2ec82712baac8e5ead67ea20d4f55372a8e74a2,3baa2f962e481200fd1ff0e4de1818fe91eb7885..28f38e2b8f309387b7a983937b50908c3095f7d9
@@@@@@@@@@@@ -231,7 -231,7 -231,7 -231,7 -231,7 -231,7 -231,7 -231,7 -231,7 -231,7 -231,11 +231,11 @@@@@@@@@@@@ struct hid_item 
           #define HID_DG_TAP           0x000d0035
           #define HID_DG_TABLETFUNCTIONKEY     0x000d0039
           #define HID_DG_PROGRAMCHANGEKEY      0x000d003a
++++++++++ #define HID_DG_BATTERYSTRENGTH       0x000d003b
           #define HID_DG_INVERT                0x000d003c
++++++++++ #define HID_DG_TILT_X                0x000d003d
++++++++++ #define HID_DG_TILT_Y                0x000d003e
++++++++++ #define HID_DG_TWIST         0x000d0041
           #define HID_DG_TIPSWITCH     0x000d0042
           #define HID_DG_TIPSWITCH2    0x000d0043
           #define HID_DG_BARRELSWITCH  0x000d0044
@@@@@@@@@@@@ -479,6 -479,6 -479,6 -479,6 -479,6 -479,7 -479,6 -479,6 -479,6 -479,6 -483,6 +483,7 @@@@@@@@@@@@ struct hid_input 
                struct list_head list;
                struct hid_report *report;
                struct input_dev *input;
+++++ +++++     bool registered;
           };
           
           enum hid_type {