Skip to content

Commit

Permalink
Fix NKRO and Mouse Emulation on arm_atsam (qmk#23945)
Browse files Browse the repository at this point in the history
  • Loading branch information
Izumemori authored Aug 12, 2024
1 parent 45397a4 commit 40f2575
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion tmk_core/protocol/arm_atsam/main_arm_atsam.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,13 @@ void send_nkro(report_nkro_t *report) {
__disable_irq();
__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_send_report();

Expand All @@ -105,7 +111,17 @@ void send_mouse(report_mouse_t *report) {
__disable_irq();
__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);
# endif
udi_hid_mou_b_report_valid = 1;
udi_hid_mou_send_report();

Expand Down

0 comments on commit 40f2575

Please sign in to comment.