From b02993c9895d34e84f2dbf156ee274ad6abf84c0 Mon Sep 17 00:00:00 2001 From: Grissiom Date: Tue, 11 Jun 2013 11:50:05 +0800 Subject: [PATCH] usbdevice/core: cope with some buggy drivers on USB_MSG_DATA_NOTIFY Some driver will emit USB_MSG_DATA_NOTIFY before the USB get configured. Filter out those events. --- components/drivers/usb/usbdevice/core/core.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/drivers/usb/usbdevice/core/core.c b/components/drivers/usb/usbdevice/core/core.c index c2965d6bb2..48fc69895c 100644 --- a/components/drivers/usb/usbdevice/core/core.c +++ b/components/drivers/usb/usbdevice/core/core.c @@ -1447,6 +1447,10 @@ static void rt_usbd_thread_entry(void* parameter) _sof_notify(device); break; case USB_MSG_DATA_NOTIFY: + /* some buggy drivers will have USB_MSG_DATA_NOTIFY before the core + * got configured. */ + if (device->state != USB_STATE_CONFIGURED) + break; ep = rt_usbd_find_endpoint(device, &cls, msg.content.ep_msg.ep_addr); if(ep != RT_NULL) ep->handler(device, cls, msg.content.ep_msg.size);