On Tue, Oct 13, 2015 at 03:51:43PM +0800, Li Jun wrote: > Since the ci->role will be set after the host role start is complete, there > will be nobody cared irq during start host if usb irq enabled. This error > can be reproduced on i.mx6 sololite EVK board by: > 1. disable otg id irq(IDIE) and disable all real otg properties of usbotg1 > in dts. > 2. boot up the board with ID cable and usb device connected. > 3. echo gadget > /sys/kernel/debug/ci_hdrc.0/role > 4. echo host > /sys/kernel/debug/ci_hdrc.0/role > 5. irq 212: nobody cared. > > Signed-off-by: Li Jun <jun.li@xxxxxxxxxxxxx> > --- > drivers/usb/chipidea/debug.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/usb/chipidea/debug.c b/drivers/usb/chipidea/debug.c > index 080b7be..58c8485 100644 > --- a/drivers/usb/chipidea/debug.c > +++ b/drivers/usb/chipidea/debug.c > @@ -322,8 +322,10 @@ static ssize_t ci_role_write(struct file *file, const char __user *ubuf, > return -EINVAL; > > pm_runtime_get_sync(ci->dev); > + disable_irq(ci->irq); > ci_role_stop(ci); > ret = ci_role_start(ci, role); > + enable_irq(ci->irq); > pm_runtime_put_sync(ci->dev); > > return ret ? ret : count; > -- > 1.7.9.5 > It is a bug fix, please cc stable tree. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html