From f8018b22d0bcba97e54652a01e8bdefb15f83c4c Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Mon, 8 Nov 2021 21:21:01 +0000 Subject: [PATCH] fix(hid): Basic consumer code fixes for signed logical max. * Logical max values are signed, so for the report descriptor, use a two byte logical max descriptor item to impart proper 0xFF max logical value. --- app/include/zmk/hid.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/include/zmk/hid.h b/app/include/zmk/hid.h index 95b82d46..e23caff9 100644 --- a/app/include/zmk/hid.h +++ b/app/include/zmk/hid.h @@ -143,12 +143,14 @@ static const uint8_t zmk_hid_report_desc[] = { /* LOGICAL_MINIMUM (0) */ HID_GI_LOGICAL_MIN(1), 0x00, - /* LOGICAL_MAXIMUM (0xFFFF) */ - HID_GI_LOGICAL_MAX(1), + /* LOGICAL_MAXIMUM (0x00FF) - little endian, and requires two bytes because logical max is + signed */ + HID_GI_LOGICAL_MAX(2), 0xFF, + 0x00, HID_LI_USAGE_MIN(1), 0x00, - /* USAGE_MAXIMUM (0xFFFF) */ + /* USAGE_MAXIMUM (0xFF) */ HID_LI_USAGE_MAX(1), 0xFF, /* INPUT (Data,Ary,Abs) */