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
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
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>
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
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
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
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
S: Maintained
F: block/
F: kernel/trace/blktrace.c
+ + F: lib/sbitmap.c
BLOCK2MTD DRIVER
M: Joern Engel <joern@lazybastard.org>
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/
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
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/
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
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>
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
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*
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
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>
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>
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
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
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
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
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>
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
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/
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
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>
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
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>
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
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
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>
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>
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*
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*
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
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
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
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*
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
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/
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
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>
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
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>
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
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
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/
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>
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/
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
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
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
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>
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/
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>
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
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/
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>
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
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
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
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/
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
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
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
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
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
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
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
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
(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;
{ 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) },
#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
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 */
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
{
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);
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);
}
.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),
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,
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);
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;
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;
/*
}
}
----- ----- /* 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;
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;
}
/*
#include <linux/jiffies.h>
#include "client.h"
#include "hw-ish.h"
--- -------#include "utils.h"
#include "hbm.h"
/* For FW reset flow */
((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;
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
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
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
{
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;
}
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);
*/
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);
}
{ 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 },
#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
struct list_head list;
struct hid_report *report;
struct input_dev *input;
+++++ +++++ bool registered;
};
enum hid_type {