aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Vlasov <sigprof@gmail.com>2020-10-27 02:40:59 +0300
committerGitHub <noreply@github.com>2020-10-27 10:40:59 +1100
commitf149c07d68c3819e26198f8d4f97857de3a1c78e (patch)
treedee62de284da4da23d51790df1417c54de8b9364
parent2c92ee1f56b92b15403b2f070c827162db37c9ba (diff)
downloadqmk_firmware-f149c07d68c3819e26198f8d4f97857de3a1c78e.tar.gz
qmk_firmware-f149c07d68c3819e26198f8d4f97857de3a1c78e.zip
Fix KEYBOARD_SHARED_EP incompatibility with VIA (#9930)
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.
-rw-r--r--tmk_core/protocol/usb_descriptor.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h
index 79dd87014..02a4b1ce5 100644
--- a/tmk_core/protocol/usb_descriptor.h
+++ b/tmk_core/protocol/usb_descriptor.h
@@ -60,6 +60,11 @@ typedef struct {
60 USB_Descriptor_Interface_t Keyboard_Interface; 60 USB_Descriptor_Interface_t Keyboard_Interface;
61 USB_HID_Descriptor_HID_t Keyboard_HID; 61 USB_HID_Descriptor_HID_t Keyboard_HID;
62 USB_Descriptor_Endpoint_t Keyboard_INEndpoint; 62 USB_Descriptor_Endpoint_t Keyboard_INEndpoint;
63#else
64 // Shared Interface
65 USB_Descriptor_Interface_t Shared_Interface;
66 USB_HID_Descriptor_HID_t Shared_HID;
67 USB_Descriptor_Endpoint_t Shared_INEndpoint;
63#endif 68#endif
64 69
65#ifdef RAW_ENABLE 70#ifdef RAW_ENABLE
@@ -77,7 +82,7 @@ typedef struct {
77 USB_Descriptor_Endpoint_t Mouse_INEndpoint; 82 USB_Descriptor_Endpoint_t Mouse_INEndpoint;
78#endif 83#endif
79 84
80#ifdef SHARED_EP_ENABLE 85#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
81 // Shared Interface 86 // Shared Interface
82 USB_Descriptor_Interface_t Shared_Interface; 87 USB_Descriptor_Interface_t Shared_Interface;
83 USB_HID_Descriptor_HID_t Shared_HID; 88 USB_HID_Descriptor_HID_t Shared_HID;
@@ -139,6 +144,7 @@ enum usb_interfaces {
139#ifndef KEYBOARD_SHARED_EP 144#ifndef KEYBOARD_SHARED_EP
140 KEYBOARD_INTERFACE, 145 KEYBOARD_INTERFACE,
141#else 146#else
147 SHARED_INTERFACE,
142# define KEYBOARD_INTERFACE SHARED_INTERFACE 148# define KEYBOARD_INTERFACE SHARED_INTERFACE
143#endif 149#endif
144 150
@@ -153,7 +159,7 @@ enum usb_interfaces {
153 MOUSE_INTERFACE, 159 MOUSE_INTERFACE,
154#endif 160#endif
155 161
156#ifdef SHARED_EP_ENABLE 162#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
157 SHARED_INTERFACE, 163 SHARED_INTERFACE,
158#endif 164#endif
159 165