diff options
Diffstat (limited to 'drivers/usb/chipidea/otg.c')
-rw-r--r-- | drivers/usb/chipidea/otg.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/chipidea/otg.c b/drivers/usb/chipidea/otg.c index fb8a1fe6ead3..70ac5c4028af 100644 --- a/drivers/usb/chipidea/otg.c +++ b/drivers/usb/chipidea/otg.c @@ -100,8 +100,11 @@ static void ci_handle_id_switch(struct ci_hdrc *ci) if ((ci->role == CI_ROLE_HOST) && ci->hcd) { roothub = ci->hcd->self.root_hub; for (i = 0; i < roothub->maxchild; ++i) { - while (usb_hub_find_child(roothub, (i + 1))) - usleep_range(500, 1000); + while (usb_hub_find_child(roothub, (i + 1))) { + enable_irq(ci->irq); + usleep_range(10000, 15000); + disable_irq_nosync(ci->irq); + } } } |