Am 25.04.2017 um 11:20 schrieb Peter Chen: > >>>> diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c >>>> index f88e9157fad0..60a786c87c06 100644 >>>> --- a/drivers/usb/chipidea/udc.c >>>> +++ b/drivers/usb/chipidea/udc.c >>>> @@ -1984,6 +1984,7 @@ static void udc_id_switch_for_host(struct >>>> ci_hdrc *ci) int ci_hdrc_gadget_init(struct ci_hdrc *ci) { >>>> struct ci_role_driver *rdrv; >>>> + int ret; >>>> >>>> if (!hw_read(ci, CAP_DCCPARAMS, DCCPARAMS_DC)) >>>> return -ENXIO; >>>> @@ -1996,7 +1997,10 @@ int ci_hdrc_gadget_init(struct ci_hdrc *ci) >>>> rdrv->stop = udc_id_switch_for_host; >>>> rdrv->irq = udc_irq; >>>> rdrv->name = "gadget"; >>>> - ci->roles[CI_ROLE_GADGET] = rdrv; >>>> >>>> - return udc_start(ci); >>>> + ret = udc_start(ci); >>>> + if (!ret) >>>> + ci->roles[CI_ROLE_GADGET] = rdrv; >>>> + >>>> + return ret; >>>> } >>>> -- >>> Thanks for fixing it. In fact, we'd better return failure if ret && >>> ret != -ENXIO at probe, it stands for initialization for host or >>> gadget has failed. >>> >> I got your meaning. I'll cook v2. I don't have preference, since either one can fix the >> issue. >> > Both are needed, you don't need to send this one again. Only a new one, thanks. I'm not sure how easy it is to reproduce the issue. Shouldn't make a Fixes tag sense at least? > > Peter > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- 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