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.
This commit is contained in:
Grissiom 2013-06-11 11:50:05 +08:00
parent ed19483cb4
commit b02993c989
1 changed files with 4 additions and 0 deletions

View File

@ -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);