Fix NKRO and Mouse Emulation on arm_atsam (#23945)

This commit is contained in:
Izumemori 2024-08-13 01:06:24 +02:00 committed by GitHub
parent 45397a44e3
commit 40f2575b56
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -88,7 +88,13 @@ void send_nkro(report_nkro_t *report) {
__disable_irq(); __disable_irq();
__DMB(); __DMB();
memcpy(udi_hid_nkro_report, report, UDI_HID_NKRO_REPORT_SIZE); /*
Skipping ahead `sizeof(report->report_id)` bytes
since `report_id` is not used by this driver
*/
void *report_no_report_id = (void *)((char *)report + sizeof(report->report_id));
memcpy(udi_hid_nkro_report, report_no_report_id, UDI_HID_NKRO_REPORT_SIZE);
udi_hid_nkro_b_report_valid = 1; udi_hid_nkro_b_report_valid = 1;
udi_hid_nkro_send_report(); udi_hid_nkro_send_report();
@ -105,7 +111,17 @@ void send_mouse(report_mouse_t *report) {
__disable_irq(); __disable_irq();
__DMB(); __DMB();
# ifdef MOUSE_SHARED_EP
/*
Skipping ahead `sizeof(report->report_id)` bytes
since `report_id` is not used by this driver
*/
void *report_no_report_id = (void *)((char *)report + sizeof(report->report_id));
memcpy(udi_hid_mou_report, report_no_report_id, UDI_HID_MOU_REPORT_SIZE);
# else
memcpy(udi_hid_mou_report, report, UDI_HID_MOU_REPORT_SIZE); memcpy(udi_hid_mou_report, report, UDI_HID_MOU_REPORT_SIZE);
# endif
udi_hid_mou_b_report_valid = 1; udi_hid_mou_b_report_valid = 1;
udi_hid_mou_send_report(); udi_hid_mou_send_report();