linux_dsm_epyc7002/drivers/hid
Jason Gerecke 923a82a6bc HID: wacom: Ignore attempts to overwrite the touch_max value from HID
commit 88f38846bfb1a452a3d47e38aeab20a4ceb74294 upstream.

The `wacom_feature_mapping` function is careful to only set the the
touch_max value a single time, but this care does not extend to the
`wacom_wac_finger_event` function. In particular, if a device sends
multiple HID_DG_CONTACTMAX items in a single feature report, the
driver will end up retaining the value of last item.

The HID descriptor for the Cintiq Companion 2 does exactly this. It
incorrectly sets a "Report Count" of 2, which will cause the driver
to process two HID_DG_CONTACTCOUNT items. The first item has the actual
count, while the second item should have been declared as a constant
zero. The constant zero is the value the driver ends up using, however,
since it is the last HID_DG_CONTACTCOUNT in the report.

    Report ID (16),
    Usage (Contact Count Maximum),  ; Contact count maximum (55h, static value)
    Report Count (2),
    Logical Maximum (10),
    Feature (Variable),

To address this, we add a check that the touch_max is not already set
within the `wacom_wac_finger_event` function that processes the
HID_DG_TOUCHMAX item. We emit a warning if the value is set and ignore
the updated value.

This could potentially cause problems if there is a tablet which has
a similar issue but requires the last item to be used. This is unlikely,
however, since it would have to have a different non-zero value for
HID_DG_CONTACTMAX earlier in the same report, which makes no sense
except in the case of a firmware bug. Note that cases where the
HID_DG_CONTACTMAX items are in different reports is already handled
(and similarly ignored) by `wacom_feature_mapping` as mentioned above.

Link: https://github.com/linuxwacom/input-wacom/issues/223
Fixes: 184eccd403 ("HID: wacom: generic: read HID_DG_CONTACTMAX from any feature report")
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
CC: stable@vger.kernel.org
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-04 11:38:23 +01:00
..
i2c-hid HID: i2c-hid: add Vero K147 to descriptor override 2020-12-26 16:02:43 +01:00
intel-ish-hid pci-v5.10-changes 2020-10-22 12:41:00 -07:00
usbhid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2020-08-25 11:13:29 -07:00
hid-a4tech.c
hid-accutouch.c
hid-alps.c HID: alps: clean up indentation issue 2020-09-22 11:19:55 +02:00
hid-apple.c
hid-appleir.c
hid-asus.c
hid-aureal.c
hid-axff.c
hid-belkin.c
hid-betopff.c
hid-bigbenff.c
hid-cherry.c
hid-chicony.c
hid-cmedia.c
hid-core.c HID: core: detect and skip invalid inputs to snto32() 2021-03-04 11:37:54 +01:00
hid-corsair.c
hid-cougar.c
hid-cp2112.c
hid-creative-sb0540.c
hid-cypress.c HID: cypress: Support Varmilo Keyboards' media hotkeys 2020-10-23 13:23:44 +02:00
hid-debug.c HID: hid-debug: fix nonblocking read semantics wrt EIO/ERESTARTSYS 2020-09-09 08:47:38 +02:00
hid-dr.c
hid-elan.c HID: elan: Fix memleak in elan_input_configured 2020-09-01 09:11:24 +02:00
hid-elecom.c
hid-elo.c
hid-emsff.c
hid-ezkey.c
hid-gaff.c
hid-gembird.c
hid-generic.c
hid-gfrm.c
hid-glorious.c
hid-google-hammer.c
hid-gt683r.c
hid-gyration.c
hid-holtek-kbd.c
hid-holtek-mouse.c
hid-holtekff.c
hid-hyperv.c HID: hyperv: Use VMBUS_RING_SIZE() for ringbuffer sizes 2020-09-28 08:57:28 +00:00
hid-icade.c
hid-ids.h HID: Ignore battery for Elan touchscreen on ASUS UX550 2021-01-27 11:54:59 +01:00
hid-input.c HID: Ignore battery for Elan touchscreen on ASUS UX550 2021-01-27 11:54:59 +01:00
hid-ite.c HID: ite: Replace ABS_MISC 120/121 events with touchpad on/off keypresses 2020-10-22 13:42:34 +02:00
hid-jabra.c
hid-kensington.c
hid-keytouch.c
hid-kye.c
hid-lcpower.c
hid-led.c
hid-lenovo.c
hid-lg2ff.c
hid-lg3ff.c
hid-lg4ff.c
hid-lg4ff.h
hid-lg-g15.c
hid-lg.c
hid-lg.h
hid-lgff.c
hid-logitech-dj.c HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming 2021-03-04 11:38:22 +01:00
hid-logitech-hidpp.c HID: logitech-hidpp: Add product ID for MX Ergo in Bluetooth mode 2021-01-27 11:55:02 +01:00
hid-macally.c
hid-magicmouse.c
hid-maltron.c
hid-mcp2221.c HID: mcp2221: Fix GPIO output handling 2020-11-05 11:16:53 +01:00
hid-mf.c
hid-microsoft.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid 2020-09-02 12:55:46 -07:00
hid-monterey.c
hid-multitouch.c HID: multitouch: Apply MT_QUIRK_CONFIDENCE quirk for multi-input devices 2021-01-30 13:55:17 +01:00
hid-nti.c
hid-ntrig.c
hid-ortek.c
hid-penmount.c
hid-petalynx.c
hid-picolcd_backlight.c
hid-picolcd_cir.c media: rc: harmonize infrared durations to microseconds 2020-09-03 16:18:55 +02:00
hid-picolcd_core.c
hid-picolcd_debugfs.c
hid-picolcd_fb.c
hid-picolcd_lcd.c
hid-picolcd_leds.c
hid-picolcd.h
hid-pl.c
hid-plantronics.c
hid-primax.c
hid-prodikeys.c
hid-quirks.c HID: add HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE for Gamevice devices 2020-11-09 12:55:18 +01:00
hid-redragon.c
hid-retrode.c
hid-rmi.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-10-23 16:16:31 -07:00
hid-roccat-arvo.c
hid-roccat-arvo.h
hid-roccat-common.c
hid-roccat-common.h
hid-roccat-isku.c
hid-roccat-isku.h
hid-roccat-kone.c Merge branch 'for-5.9/upstream-fixes' into for-linus 2020-10-15 20:41:43 +02:00
hid-roccat-kone.h
hid-roccat-koneplus.c
hid-roccat-koneplus.h
hid-roccat-konepure.c
hid-roccat-kovaplus.c
hid-roccat-kovaplus.h
hid-roccat-lua.c
hid-roccat-lua.h
hid-roccat-pyra.c
hid-roccat-pyra.h
hid-roccat-ryos.c
hid-roccat-savu.c
hid-roccat-savu.h
hid-roccat.c
hid-saitek.c
hid-samsung.c
hid-sensor-custom.c
hid-sensor-hub.c HID: hid-sensor-hub: Fix issue with devices with no report ID 2020-11-05 11:09:28 +01:00
hid-sjoy.c
hid-sony.c
hid-speedlink.c
hid-steam.c
hid-steelseries.c
hid-sunplus.c
hid-tivo.c
hid-tmff.c
hid-topseed.c
hid-twinhan.c
hid-u2fzero.c
hid-uclogic-core.c HID: uclogic: Add ID for Trust Flex Design Tablet 2020-10-22 11:52:02 +02:00
hid-uclogic-params.c HID: uclogic: Add ID for Trust Flex Design Tablet 2020-10-22 11:52:02 +02:00
hid-uclogic-params.h
hid-uclogic-rdesc.c
hid-uclogic-rdesc.h
hid-udraw-ps3.c
hid-viewsonic.c
hid-vivaldi.c HID: add vivaldi HID driver 2020-09-30 22:44:26 +02:00
hid-waltop.c
hid-wiimote-core.c HID: wiimote: narrow spinlock range in wiimote_hid_event() 2020-09-07 16:03:51 +02:00
hid-wiimote-debug.c
hid-wiimote-modules.c
hid-wiimote.h
hid-xinmo.c
hid-zpff.c
hid-zydacron.c
hidraw.c
Kconfig HID: sony: select CONFIG_CRC32 2021-01-27 11:54:57 +01:00
Makefile HID: add vivaldi HID driver 2020-09-30 22:44:26 +02:00
uhid.c
wacom_sys.c HID: wacom: Correct NULL dereference on AES pen proximity 2021-01-30 13:55:17 +01:00
wacom_wac.c HID: wacom: Ignore attempts to overwrite the touch_max value from HID 2021-03-04 11:38:23 +01:00
wacom_wac.h HID: wacom: Correct NULL dereference on AES pen proximity 2021-01-30 13:55:17 +01:00
wacom.h