From c0c67e20221be581534c14bb5bfdaa0f2dbcbc1a Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 14 Jul 2018 11:55:58 +0900 Subject: [PATCH] usb_usb: Add Cheery 0101010101010101 bug fix https://geekhack.org/index.php?topic=69169.msg2638223#msg2638223 --- tmk_core/protocol/usb_hid/parser.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tmk_core/protocol/usb_hid/parser.cpp b/tmk_core/protocol/usb_hid/parser.cpp index 94e747ca..730a20d7 100644 --- a/tmk_core/protocol/usb_hid/parser.cpp +++ b/tmk_core/protocol/usb_hid/parser.cpp @@ -6,12 +6,19 @@ void KBDReportParser::Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf) { - ::memcpy(&report, buf, sizeof(report_keyboard_t)); - time_stamp = millis(); - - dprintf("input %d: %02X %02X", hid->GetAddress(), report.mods, report.reserved); - for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { - dprintf(" %02X", report.keys[i]); + dprintf("input %d:", hid->GetAddress()); + for (uint8_t i = 0; i < len; i++) { + dprintf(" %02X", buf[i]); } dprint("\r\n"); + + // ignore Cherry 0101010101010101 bug report + // https://geekhack.org/index.php?topic=69169.msg2638223#msg2638223 + if (buf[1] == 0x01) { + dprint("Cherry bug: ignored\r\n"); + return; + } + + ::memcpy(&report, buf, sizeof(report_keyboard_t)); + time_stamp = millis(); } -- 2.46.2