Skip to content

Commit

Permalink
Fix KEYBOARD_SHARED_EP incompatibility with VIA (qmk#9930)
Browse files Browse the repository at this point in the history
The `KEYBOARD_SHARED_EP=yes` option was breaking the VIA support,
because the raw HID interface number in this case was 0 instead of 1,
and the VIA app depends on the exact interface number for raw HID.
Change the interface ordering to put the shared interface before the raw
HID interface if `KEYBOARD_SHARED_EP` is enabled, so that the raw HID
interface can keep its number.
  • Loading branch information
sigprof committed Oct 26, 2020
1 parent 2c92ee1 commit f149c07
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions tmk_core/protocol/usb_descriptor.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ typedef struct {
USB_Descriptor_Interface_t Keyboard_Interface;
USB_HID_Descriptor_HID_t Keyboard_HID;
USB_Descriptor_Endpoint_t Keyboard_INEndpoint;
#else
// Shared Interface
USB_Descriptor_Interface_t Shared_Interface;
USB_HID_Descriptor_HID_t Shared_HID;
USB_Descriptor_Endpoint_t Shared_INEndpoint;
#endif

#ifdef RAW_ENABLE
Expand All @@ -77,7 +82,7 @@ typedef struct {
USB_Descriptor_Endpoint_t Mouse_INEndpoint;
#endif

#ifdef SHARED_EP_ENABLE
#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
// Shared Interface
USB_Descriptor_Interface_t Shared_Interface;
USB_HID_Descriptor_HID_t Shared_HID;
Expand Down Expand Up @@ -139,6 +144,7 @@ enum usb_interfaces {
#ifndef KEYBOARD_SHARED_EP
KEYBOARD_INTERFACE,
#else
SHARED_INTERFACE,
# define KEYBOARD_INTERFACE SHARED_INTERFACE
#endif

Expand All @@ -153,7 +159,7 @@ enum usb_interfaces {
MOUSE_INTERFACE,
#endif

#ifdef SHARED_EP_ENABLE
#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
SHARED_INTERFACE,
#endif

Expand Down

0 comments on commit f149c07

Please sign in to comment.