Archana Patni
f58b8487bc
HID: i2c-hid: hid report descriptor retrieval changes
...
Reading the partial HID Descriptor is causing a firmware lockup in some
sensor hubs. Instead of a partial read, this patch implements the
i2c hid fetch using a fixed descriptor size (30 bytes) followed by a
verification of the BCDVersion (V01.00), and value stored in
wHIDDescLength (30 Bytes) for V1.00 descriptors.
As per i2c hid spec, this is the preferred model.
From hid-over-i2c-protocol-spec-v1-0:
There are a variety of ways a HOST may choose to retrieve
the HID Descriptor from the DEVICE. The following is a preferred
implementation but should not be considered the only implementation.
A HOST may read the entire HID Descriptor in a single read by
issuing a read for 30 Bytes to get the entire HID Descriptor
from the DEVICE.However, the HOST is responsible for validating that
1. The BCDVersion is V01.00 (later revisions may have different
descriptor lengths), and
2. The value stored in wHIDDescLength is 30 (Bytes) for V1.00
descriptors.
Reported-by: Joe Tijerina <joe.tijerina@st.com>
Signed-off-by: Archana Patni <archana.patni@intel.com>
Signed-off-by: Subramony Sesha <subramony.sesha@intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2014-05-13 11:19:22 +02:00
..
i2c-hid
HID: i2c-hid: hid report descriptor retrieval changes
2014-05-13 11:19:22 +02:00
usbhid
HID: add NO_INIT_REPORTS quirk for Synaptics Touch Pad V 103S
2014-05-05 15:57:21 +02:00
hid-a4tech.c
HID: trivial devm conversion for special hid drivers
2013-07-31 10:12:28 +02:00
hid-apple.c
HID: apple: add Apple wireless keyboard 2011 JIS model support
2014-02-06 14:35:18 +01:00
hid-appleir.c
HID: appleir: force input to be set
2013-11-21 09:58:19 +01:00
hid-aureal.c
hid-axff.c
HID: enable Mayflash USB Gamecube Adapter
2013-11-12 19:06:23 +01:00
hid-belkin.c
hid-cherry.c
hid-chicony.c
hid-core.c
HID: core: fix computation of the report size
2014-05-05 15:54:40 +02:00
hid-cp2112.c
HID: cp2112: remove the last hid_output_raw_report() call
2014-03-14 15:29:55 +01:00
hid-cypress.c
hid-debug.c
HID: debug: add labels for some new buttons
2013-12-17 13:54:40 +01:00
hid-dr.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-elecom.c
hid-elo.c
HID: hid-elo: some systems cannot stomach work around
2013-09-25 11:28:50 +02:00
hid-emsff.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-ezkey.c
hid-gaff.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-generic.c
hid-gyration.c
hid-holtek-kbd.c
hid-holtek-mouse.c
HID: hid-holtek-mouse: add new a070 mouse
2014-01-16 22:58:43 +01:00
hid-holtekff.c
HID: hid-holtekff: don't push static constants on stack for %*ph
2013-08-05 11:29:57 +02:00
hid-huion.c
HID: add support for Huion 580 tablet
2013-05-28 14:29:38 +02:00
hid-hyperv.c
Merge branch 'for-3.15/hid-core-ll-transport-cleanup' into for-linus
2014-04-01 19:05:09 +02:00
hid-icade.c
HID: icade: u16 which never < 0
2013-04-24 16:32:27 +02:00
hid-ids.h
HID: sensor-hub: Add in quirk for sensor hub in Lenovo Ideapad Yogas
2014-05-06 01:01:49 +02:00
hid-input.c
Merge branch 'for-3.15/microsoft' into for-linus
2014-04-01 19:06:41 +02:00
hid-kensington.c
hid-keytouch.c
hid-kye.c
HID: kye: Fix missing break in kye_report_fixup()
2013-12-02 15:17:04 +01:00
hid-lcpower.c
hid-lenovo-tpkbd.c
HID: lenovo-tpkbd: remove usb dependency
2013-09-24 11:47:47 +02:00
hid-lg.c
HID: replace hid_output_raw_report with hid_hw_raw_request for feature requests
2014-02-17 14:56:50 +01:00
hid-lg.h
hid-lg2ff.c
HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
2013-10-09 12:06:02 +02:00
hid-lg3ff.c
HID: LG: validate HID output report details
2013-09-13 15:12:39 +02:00
hid-lg4ff.c
HID: hid-lg4ff: Support new version of G27
2014-03-14 15:43:34 +01:00
hid-lgff.c
HID: LG: validate HID output report details
2013-09-13 15:12:39 +02:00
hid-logitech-dj.c
HID: logitech-dj: remove hid_output_raw_report call
2014-02-17 14:55:52 +01:00
hid-logitech-dj.h
HID: Revert "Revert "HID: Fix logitech-dj: missing Unifying device issue""
2013-07-22 16:32:24 +02:00
hid-magicmouse.c
HID: replace hid_output_raw_report with hid_hw_raw_request for feature requests
2014-02-17 14:56:50 +01:00
hid-microsoft.c
Revert "HID: microsoft: Add ID's for Surface Type/Touch Cover 2"
2014-04-07 09:54:43 +02:00
hid-monterey.c
hid-multitouch.c
HID: multitouch: add support of EliteGroup 05D8 panels
2014-04-24 11:45:56 +02:00
hid-ntrig.c
HID: ntrig: validate feature report details
2013-09-04 12:00:23 +02:00
hid-ortek.c
hid-petalynx.c
hid-picolcd.h
Merge branches 'for-3.10/multitouch', 'for-3.10/roccat' and 'for-3.10/upstream' into for-linus
2013-04-30 10:19:07 +02:00
hid-picolcd_backlight.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-picolcd_cir.c
[media] rc: abstract access to allowed/enabled protocols
2014-03-11 13:24:39 -03:00
hid-picolcd_core.c
HID: picolcd_core: validate output report details
2013-09-04 12:03:27 +02:00
hid-picolcd_debugfs.c
HID: fix data access in implement()
2013-07-22 16:16:40 +02:00
hid-picolcd_fb.c
HID: picolcd: Prevent NULL pointer dereference on _remove()
2013-09-02 13:36:50 +02:00
hid-picolcd_lcd.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-picolcd_leds.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-pl.c
HID: pantherlord: validate output report details
2013-09-04 11:58:32 +02:00
hid-primax.c
hid-prodikeys.c
HID: prodikeys: Convert to snd_card_new() with a device pointer
2014-02-14 08:14:09 +01:00
hid-roccat-arvo.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2013-09-06 09:30:36 -07:00
hid-roccat-arvo.h
hid-roccat-common.c
HID: roccat: generalize some common code
2013-10-30 14:17:31 +01:00
hid-roccat-common.h
HID: roccat: generalize some common code
2013-10-30 14:17:31 +01:00
hid-roccat-isku.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2013-09-06 09:30:36 -07:00
hid-roccat-isku.h
HID: roccat: add support for IskuFX
2013-03-14 11:50:49 +01:00
hid-roccat-kone.c
HID: roccat: Fix "cannot create duplicate filename" problems
2013-09-30 10:51:31 +02:00
hid-roccat-kone.h
HID: roccat: added media key support for Kone
2013-04-08 10:33:13 +02:00
hid-roccat-koneplus.c
HID: roccat: Fix "cannot create duplicate filename" problems
2013-09-30 10:51:31 +02:00
hid-roccat-koneplus.h
hid-roccat-konepure.c
HID: roccat: generalize some common code
2013-10-30 14:17:31 +01:00
hid-roccat-kovaplus.c
HID: roccat: fix Coverity CID 141438
2013-11-04 10:55:20 +01:00
hid-roccat-kovaplus.h
hid-roccat-lua.c
hid-roccat-lua.h
hid-roccat-pyra.c
HID: roccat: Fix "cannot create duplicate filename" problems
2013-09-30 10:51:31 +02:00
hid-roccat-pyra.h
hid-roccat-ryos.c
HID: roccat: add support for Ryos MK keyboards
2013-10-30 14:17:31 +01:00
hid-roccat-savu.c
HID: roccat: generalize some common code
2013-10-30 14:17:31 +01:00
hid-roccat-savu.h
HID: roccat: generalize some common code
2013-10-30 14:17:31 +01:00
hid-roccat.c
HID: roccat: check cdev_add return value
2013-06-18 11:00:36 +02:00
hid-saitek.c
hid-samsung.c
hid-sensor-hub.c
HID: sensor-hub: Add in quirk for sensor hub in Lenovo Ideapad Yogas
2014-05-06 01:01:49 +02:00
hid-sjoy.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-sony.c
HID: sony: Fix cancel_work_sync mismerge
2014-04-03 14:23:49 +02:00
hid-speedlink.c
HID: Fix Speedlink VAD Cezanne support for some devices
2013-08-26 13:51:10 +02:00
hid-steelseries.c
HID: steelseries: validate output report details
2013-09-13 15:12:28 +02:00
hid-sunplus.c
hid-thingm.c
HID: replace hid_output_raw_report with hid_hw_raw_request for feature requests
2014-02-17 14:56:50 +01:00
hid-tivo.c
hid-tmff.c
HID: use hid_hw_request() instead of direct call to usbhid
2013-02-25 13:26:41 +01:00
hid-topseed.c
hid-twinhan.c
hid-uclogic.c
hid-wacom.c
HID: replace hid_output_raw_report with hid_hw_raw_request for feature requests
2014-02-17 14:56:50 +01:00
hid-waltop.c
hid-wiimote-core.c
HID: wiimote: replace hid_output_raw_report with hid_hw_output_report for output requests
2014-02-17 14:57:17 +01:00
hid-wiimote-debug.c
HID: wiimote: fix DRM debug-attr to correctly parse input
2013-06-03 11:07:06 +02:00
hid-wiimote-modules.c
HID: wiimote: add pro-controller analog stick calibration
2013-10-30 14:13:29 +01:00
hid-wiimote.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2013-11-15 16:48:22 -08:00
hid-xinmo.c
HID: use module_hid_driver() to simplify the code
2013-08-26 13:23:04 +02:00
hid-zpff.c
HID: zeroplus: validate output report details
2013-09-13 15:11:34 +02:00
hid-zydacron.c
HID: trivial devm conversion for special hid drivers
2013-07-31 10:12:28 +02:00
hidraw.c
Merge branch 'for-3.15/hid-core-ll-transport-cleanup' into for-linus
2014-04-01 19:05:09 +02:00
Kconfig
Merge branch 'for-3.15/sony' into for-3.15/hid-core-ll-transport-cleanup
2014-03-14 15:30:16 +01:00
Makefile
HID: add hid-cp2112 driver
2014-02-17 23:33:17 +01:00
uhid.c
HID: uhid: Add UHID_CREATE2 + UHID_INPUT2
2014-04-01 18:27:33 +02:00