HID: Increase HID maximum report size to 16KB
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 25 Nov 2020 22:39:34 +0000 (09:39 +1100)
committerJiri Kosina <jkosina@suse.cz>
Fri, 27 Nov 2020 14:44:21 +0000 (15:44 +0100)
Currently the maximum HID report size which can be buffered by the kernel is
8KB. This is sufficient for the vast majority of HID devices on the market, as
most HID reports are fairly small.

However, some unusual devices such as the Elgate Stream Deck exist which use a
report size slightly over 8KB for the image data that is sent to the device.
Reports these large cannot be buffered by the regular HID subsystem currently,
thus the only way to use such device is to bypass the HID subsystem entirely.

This increases the maximum HID report size to 16KB, which should cover all
sanely designed HID devices.

Signed-off-by: Dean Camera <dean@fourwalledcubicle.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
include/linux/hid.h

index b079146850e6ef0e35ec82d0113b8f57e69d7d79..c39d71eb1fd0a54ec461c56128b9208f1b8a127c 100644 (file)
@@ -494,7 +494,7 @@ struct hid_report_enum {
 };
 
 #define HID_MIN_BUFFER_SIZE    64              /* make sure there is at least a packet size of space */
-#define HID_MAX_BUFFER_SIZE    8192            /* 8kb */
+#define HID_MAX_BUFFER_SIZE    16384           /* 16kb */
 #define HID_CONTROL_FIFO_SIZE  256             /* to init devices with >100 reports */
 #define HID_OUTPUT_FIFO_SIZE   64