fix plug & unplug issue by reseting port immediately instead of waiting for usbh enumeration task to do so

This commit is contained in:
hathach
2013-12-19 12:43:22 +07:00
parent fce6252456
commit cfcef0558a
3 changed files with 6 additions and 5 deletions

View File

@@ -666,6 +666,7 @@ void hcd_isr(uint8_t hostid)
{
if ( OHCI_REG->rhport_status_bit[0].current_connect_status )
{
OHCI_REG->rhport_status[0] = OHCI_RHPORT_PORT_RESET_STATUS_MASK;
usbh_hcd_rhport_plugged_isr(0);
}else
{

View File

@@ -374,9 +374,9 @@ tusb_error_t enumeration_body_subtask(void)
{ // connected/disconnected directly with roothub
if( hcd_port_connect_status(usbh_devices[0].core_id) )
{ // connection event
osal_task_delay(200); // wait for device is stable
hcd_port_reset( usbh_devices[0].core_id ); // port must be reset to have correct speed operation
osal_task_delay(50); // TODO reset is recommended to last 50 ms (NXP EHCI passes this)
osal_task_delay(200); // wait for port reset is complete & device is stable
// hcd_port_reset( usbh_devices[0].core_id ); // port must be reset to have correct speed operation
// osal_task_delay(50); // TODO reset is recommended to last 50 ms (NXP EHCI passes this)
usbh_devices[0].speed = hcd_port_speed_get( usbh_devices[0].core_id );
}
else