linux/drivers/hid
Nicolas Saenz Julienne 58e7515500 HID: core: move Usage Page concatenation to Main item
As seen on some USB wireless keyboards manufactured by Primax, the HID
parser was using some assumptions that are not always true. In this case
it's s the fact that, inside the scope of a main item, an Usage Page
will always precede an Usage.

The spec is not pretty clear as 6.2.2.7 states "Any usage that follows
is interpreted as a Usage ID and concatenated with the Usage Page".
While 6.2.2.8 states "When the parser encounters a main item it
concatenates the last declared Usage Page with a Usage to form a
complete usage value." Being somewhat contradictory it was decided to
match Window's implementation, which follows 6.2.2.8.

In summary, the patch moves the Usage Page concatenation from the local
item parsing function to the main item parsing function.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Terry Junge <terry.junge@poly.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
2019-04-02 16:09:35 +02:00
..
i2c-hid Merge branch 'for-5.1/i2c-hid' into for-linus 2019-03-05 15:42:51 +01:00
intel-ish-hid Merge branch 'for-5.1/i2c-hid' into for-linus 2019-03-05 15:42:51 +01:00
usbhid HID: hiddev: fix potential Spectre v1 2018-10-26 17:06:24 +02:00
hid-a4tech.c
hid-accutouch.c HID: Accutouch: Add driver for ELO Accutouch 2216 USB Touchscreens 2017-03-21 15:03:55 +01:00
hid-alps.c HID: alps: allow incoming reports when only the trackstick is opened 2018-10-26 17:27:13 +02:00
hid-apple.c HID: add support for Apple Magic Keyboards 2018-08-28 13:52:50 +02:00
hid-appleir.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
hid-asus.c HID: hid-asus: Add BT keyboard dock battery monitoring support 2019-02-14 00:01:30 +01:00
hid-aureal.c HID: fix some indenting issues 2015-10-21 13:15:53 +02:00
hid-axff.c
hid-belkin.c
hid-betopff.c
hid-bigbenff.c HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad 2018-09-24 11:49:32 +02:00
hid-cherry.c
hid-chicony.c HID: move Asus keyboard support from hid-chicony to hid-asus 2017-06-08 13:47:52 +02:00
hid-cmedia.c HID: Support for CMedia CM6533 HID audio jack controls 2016-03-02 10:31:36 +01:00
hid-core.c HID: core: move Usage Page concatenation to Main item 2019-04-02 16:09:35 +02:00
hid-corsair.c HID: corsair: Add K70 Vengeance and K70 RAPIDFIRE to 2018-02-16 13:38:16 +01:00
hid-cougar.c HID: cougar: Add support for Cougar 700K Gaming Keyboard 2018-11-21 14:41:43 +01:00
hid-cp2112.c gpio: Pass a flag to gpiochip_request_own_desc() 2018-12-14 14:24:33 +01:00
hid-cypress.c HID: hid-cypress: validate length of report 2017-01-06 16:06:43 +01:00
hid-debug.c HID: debug: fix the ring buffer implementation 2019-01-29 12:09:11 +01:00
hid-dr.c Revert "HID: dragonrise: fix HID Descriptor for 0x0006 PID" 2016-10-10 10:52:01 +02:00
hid-elan.c HID: elan: Make array buf static, shrinks object size 2019-01-28 21:49:12 +01:00
hid-elecom.c HID: elecom: add support for EX-G M-XT4DRBK trackball 2018-03-06 15:15:47 +01:00
hid-elo.c HID: elo: clear BTN_LEFT mapping 2017-11-24 14:40:23 +01:00
hid-emsff.c
hid-ezkey.c
hid-gaff.c
hid-gembird.c HID: gembird: add new driver to fix Gembird JPD-DualForce 2 2015-08-18 15:03:43 +02:00
hid-generic.c HID: generic: create one input report per application type 2018-04-26 14:17:31 +02:00
hid-gfrm.c HID: generic: create one input report per application type 2018-04-26 14:17:31 +02:00
hid-google-hammer.c HID: google: drop superfluous const before SIMPLE_DEV_PM_OPS() 2018-10-09 10:43:39 +02:00
hid-gt683r.c HID: use to_hid_device() 2015-12-28 13:41:44 +01:00
hid-gyration.c
hid-holtek-kbd.c
hid-holtek-mouse.c
hid-holtekff.c HID: holtekff: move MODULE_* parameters out of #ifdef block 2017-12-01 09:31:36 +01:00
hid-hyperv.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-12-04 08:47:04 -08:00
hid-icade.c
hid-ids.h Merge branch 'for-5.1/hid-uclogic' into for-linus 2019-03-05 15:30:16 +01:00
hid-input.c HID: Add ASUS T100CHI keyboard dock battery quirks 2019-02-14 00:01:30 +01:00
hid-ite.c HID: ite: Add USB id match for another ITE based keyboard rfkill key quirk 2018-11-30 14:12:07 +01:00
hid-jabra.c HID: Add special driver for Jabra devices 2017-11-21 12:54:58 +01:00
hid-kensington.c
hid-keytouch.c
hid-kye.c HID: kye: Add support for EasyPen M406XE 2019-02-21 12:00:53 +01:00
hid-lcpower.c
hid-led.c HID: hid-led: fix issue with transfer buffer not being dma capable 2016-10-10 10:47:03 +02:00
hid-lenovo.c HID: lenovo: Add checks to fix of_led_classdev_register 2019-01-03 11:30:08 +01:00
hid-lg2ff.c
hid-lg3ff.c
hid-lg4ff.c HID: fix Logitech WingMan Formula GP joined axes 2019-02-14 00:21:29 +01:00
hid-lg4ff.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hid-lg.c HID: fix Logitech WingMan Formula GP joined axes 2019-02-14 00:21:29 +01:00
hid-lg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hid-lgff.c
hid-logitech-dj.c HID: logitech-dj: allow devices to request full pairing information 2017-04-06 14:36:36 +02:00
hid-logitech-hidpp.c HID: logitech: Use LDJ_DEVICE macro for existing Logitech mice 2018-12-07 16:27:16 +01:00
hid-magicmouse.c HID: magicmouse: add support for Apple Magic Trackpad 2 2018-10-03 10:57:58 +02:00
hid-maltron.c Support for Maltron L90 keyboard media keys 2019-01-14 20:11:01 +01:00
hid-mf.c HID: hid-mf: add force feedback support for Mayflash DolphinBar and GameCube 2017-01-11 22:12:44 +01:00
hid-microsoft.c HID: microsoft: Add rumble support for Xbox One S controller 2018-09-05 10:19:43 +02:00
hid-monterey.c
hid-multitouch.c HID: multitouch: Lenovo X1 Tablet Gen3 trackpoint and buttons 2019-02-14 00:05:43 +01:00
hid-nti.c HID: Add quirk driver for NTI USB-SUN adapter 2017-03-06 13:16:33 +01:00
hid-ntrig.c HID: hid-ntrig: add error handling for sysfs_create_group 2018-06-25 15:16:11 +02:00
hid-ortek.c HID: ortek: add one more buggy device 2017-07-24 17:38:21 +02:00
hid-penmount.c HID: penmount: report only one button for PenMount 6000 USB touchscreen controller 2016-03-10 17:17:26 +01:00
hid-petalynx.c
hid-picolcd_backlight.c
hid-picolcd_cir.c media: rc: Remove init_ir_raw_event and DEFINE_IR_RAW_EVENT macros 2018-10-04 14:22:27 -04:00
hid-picolcd_core.c
hid-picolcd_debugfs.c HID: picoLCD: Spelling s/REPORT_WRTIE_MEMORY/REPORT_WRITE_MEMORY/ 2017-03-24 15:45:04 +01:00
hid-picolcd_fb.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
hid-picolcd_lcd.c
hid-picolcd_leds.c HID: use to_hid_device() 2015-12-28 13:41:44 +01:00
hid-picolcd.h
hid-pl.c
hid-plantronics.c HID: hid-plantronics: Re-resend Update to map button for PTT products 2018-05-16 11:06:40 +02:00
hid-primax.c
hid-prodikeys.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
hid-quirks.c Merge branch 'for-5.1/hid-uclogic' into for-linus 2019-03-05 15:30:16 +01:00
hid-redragon.c HID: redragon: fix num lock and caps lock LEDs 2018-06-25 15:23:40 +02:00
hid-retrode.c HID: Add driver for Retrode2 joypad adapter 2017-06-22 14:44:11 +02:00
hid-rmi.c HID: rmi: use HID_QUIRK_NO_INPUT_SYNC 2018-05-30 08:55:33 +02:00
hid-roccat-arvo.c HID: use kobj_to_dev() 2015-12-28 13:41:51 +01:00
hid-roccat-arvo.h
hid-roccat-common.c HID: use kobj_to_dev() 2015-12-28 13:41:51 +01:00
hid-roccat-common.h
hid-roccat-isku.c HID: use kobj_to_dev() 2015-12-28 13:41:51 +01:00
hid-roccat-isku.h
hid-roccat-kone.c HID: roccat: Mark expected switch fall-through 2019-02-20 09:39:15 +01:00
hid-roccat-kone.h
hid-roccat-koneplus.c HID: use kobj_to_dev() 2015-12-28 13:41:51 +01:00
hid-roccat-koneplus.h
hid-roccat-konepure.c
hid-roccat-kovaplus.c HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() 2018-01-23 15:46:58 +01:00
hid-roccat-kovaplus.h
hid-roccat-lua.c HID: use kobj_to_dev() 2015-12-28 13:41:51 +01:00
hid-roccat-lua.h
hid-roccat-pyra.c HID: use kobj_to_dev() 2015-12-28 13:41:51 +01:00
hid-roccat-pyra.h
hid-roccat-ryos.c
hid-roccat-savu.c
hid-roccat-savu.h
hid-roccat.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
hid-saitek.c HID: hid-saitek: Add device ID for RAT 7 Contagion 2018-08-30 10:58:44 +02:00
hid-samsung.c
hid-sensor-custom.c iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-11-16 11:42:12 +00:00
hid-sensor-hub.c iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-11-16 11:42:12 +00:00
hid-sjoy.c
hid-sony.c HID: sony: Fix SHANWAN PS3 GamePad rumble and led settings support 2019-01-09 14:56:30 +01:00
hid-speedlink.c
hid-steam.c HID: steam: fix boot loop with bluetooth firmware 2019-02-14 00:04:25 +01:00
hid-steelseries.c HID: use to_hid_device() 2015-12-28 13:41:44 +01:00
hid-sunplus.c
hid-tivo.c
hid-tmff.c HID: Add ID 044f:b605 ThrustMaster, Inc. force feedback Racing Wheel 2017-11-07 10:04:46 +01:00
hid-topseed.c HID: Add support for Toshiba WT10A tablet bluetooth keyboard 2019-02-07 16:44:46 +01:00
hid-twinhan.c
hid-uclogic-core.c HID: uclogic: Add support for Ugee G5 2019-02-21 12:00:54 +01:00
hid-uclogic-params.c HID: uclogic: Do not initialize non-USB devices 2019-02-21 12:00:54 +01:00
hid-uclogic-params.h HID: uclogic: Support Gray-coded rotary encoders 2019-02-21 12:00:54 +01:00
hid-uclogic-rdesc.c HID: uclogic: Add support for Ugee G5 2019-02-21 12:00:54 +01:00
hid-uclogic-rdesc.h HID: uclogic: Add support for Ugee G5 2019-02-21 12:00:54 +01:00
hid-udraw-ps3.c HID: udraw-ps3: accel_limits is local to the driver 2016-11-15 14:23:17 +01:00
hid-viewsonic.c HID: viewsonic: Support PD1011 signature pad 2019-02-21 12:00:53 +01:00
hid-waltop.c HID: Remove broken links to tablet descriptions 2016-09-19 14:32:21 +02:00
hid-wiimote-core.c HID: wiimote: add support for Guitar-Hero devices 2018-06-25 15:26:06 +02:00
hid-wiimote-debug.c
hid-wiimote-modules.c HID: wiimote: add support for Guitar-Hero devices 2018-06-25 15:26:06 +02:00
hid-wiimote.h HID: wiimote: add support for Guitar-Hero devices 2018-06-25 15:26:06 +02:00
hid-xinmo.c HID: xinmo: fix for out of range for THT 2P arcade controller. 2017-03-24 15:43:03 +01:00
hid-zpff.c
hid-zydacron.c
hidraw.c HID: hidraw: enforce minors_lock locking via lockdep 2018-11-12 12:44:03 +01:00
Kconfig Merge branch 'for-5.1/hid-uclogic' into for-linus 2019-03-05 15:30:16 +01:00
Makefile Merge branch 'for-5.1/hid-uclogic' into for-linus 2019-03-05 15:30:16 +01:00
uhid.c Revert "HID: uhid: use strlcpy() instead of strncpy()" 2018-11-19 14:32:27 +01:00
wacom_sys.c HID: wacom: Move HID fix for AES serial number into wacom_hid_usage_quirk 2019-01-29 11:14:57 +01:00
wacom_wac.c HID: wacom: Add support for Pro Pen slim 2019-02-20 17:44:29 +01:00
wacom_wac.h HID: wacom: generic: add the "Report Valid" usage 2018-03-07 15:21:44 +01:00
wacom.h HID: wacom: Add ability to provide explicit battery status info 2017-05-05 21:46:10 +02:00