HID: core: Add reserved item tag for main items
authorTatsuya S <tatsuya.s2862@gmail.com>
Mon, 6 Jan 2025 07:49:11 +0000 (16:49 +0900)
committerJiri Kosina <jkosina@suse.com>
Fri, 7 Feb 2025 15:03:31 +0000 (16:03 +0100)
For main items, separate warning of reserved item tag from
warning of unknown item tag.
This comes from 6.2.2.4 Main Items of Device Class Definition
for HID 1.11 specification.

Signed-off-by: Tatsuya S <tatsuya.s2862@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-core.c
include/linux/hid.h

index 4497b50799dbfa16a58a17b15ae6fe1ff9548c7c..4741ff6267710b35c6fe1a78ca5e90f725b232a7 100644 (file)
@@ -657,7 +657,11 @@ static int hid_parser_main(struct hid_parser *parser, struct hid_item *item)
                ret = hid_add_field(parser, HID_FEATURE_REPORT, data);
                break;
        default:
-               hid_warn(parser->device, "unknown main item tag 0x%x\n", item->tag);
+               if (item->tag >= HID_MAIN_ITEM_TAG_RESERVED_MIN &&
+                       item->tag <= HID_MAIN_ITEM_TAG_RESERVED_MAX)
+                       hid_warn(parser->device, "reserved main item tag 0x%x\n", item->tag);
+               else
+                       hid_warn(parser->device, "unknown main item tag 0x%x\n", item->tag);
                ret = 0;
        }
 
index cdc0dc13c87fed201a3a348d1e8c8ff34bcf40dc..3f01cd77f6d4c3bac77627036c986d8cf12c5217 100644 (file)
@@ -81,6 +81,8 @@ struct hid_item {
 #define HID_MAIN_ITEM_TAG_FEATURE              11
 #define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION     10
 #define HID_MAIN_ITEM_TAG_END_COLLECTION       12
+#define HID_MAIN_ITEM_TAG_RESERVED_MIN         13
+#define HID_MAIN_ITEM_TAG_RESERVED_MAX         15
 
 /*
  * HID report descriptor main item contents