summaryrefslogtreecommitdiffstats
path: root/firmware/usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/usb.c')
-rw-r--r--firmware/usb.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/firmware/usb.c b/firmware/usb.c
index 6823851e08..b8c9822ff6 100644
--- a/firmware/usb.c
+++ b/firmware/usb.c
@@ -270,6 +270,11 @@ void usb_signal_transfer_completion(
queue_post(&usb_queue, USB_TRANSFER_COMPLETION, (intptr_t)event_data);
}
+void usb_signal_notify(long id, intptr_t data)
+{
+ queue_post(&usb_queue, id, data);
+}
+
#else /* !HAVE_USBSTACK */
static inline void usb_stack_enable(bool enable)
@@ -431,6 +436,12 @@ static void NORETURN_ATTR usb_thread(void)
/*** Main USB thread duties ***/
#ifdef HAVE_USBSTACK
+ case USB_NOTIFY_SET_ADDR:
+ case USB_NOTIFY_SET_CONFIG:
+ if(usb_state <= USB_EXTRACTED)
+ break;
+ usb_core_handle_notify(ev.id, ev.data);
+ break;
case USB_TRANSFER_COMPLETION:
if(usb_state <= USB_EXTRACTED)
break;