Am Dienstag 22 Mai 2012, 19:53:03 schrieb Felipe Balbi: > On Mon, May 21, 2012 at 03:04:21PM +0800, Yu Xu wrote: > > mv_udc does not work with the patch. > > For example, mass storage cannot work over mv_udc. In function > > do_set_interface, config_ep_by_speed do "_ep->desc = chosen_desc". But > > after that, mv_ep_enable check the ep->ep.desc. It always return with > > failure. And in the function mv_ep_enable, it do the "ep->ep.desc = > > desc;" again. Can we remove it? > > And the issue exists on other controller driver as well. > > this patch was pending a looooooong time exactly because it was so big. > I even asked Ido to miss a merge window so we did things step-by-step. > > Just send a fix on during the -rc series and I will gladly apply. That's > why we have -rc cycle anyway. It seems I've got bitten by the same problem. > diff --git a/drivers/usb/gadget/s3c-hsudc.c > b/drivers/usb/gadget/s3c-hsudc.c index cef9b82..36c6836 100644 > --- a/drivers/usb/gadget/s3c-hsudc.c > +++ b/drivers/usb/gadget/s3c-hsudc.c > @@ -761,7 +760,7 @@ static int s3c_hsudc_ep_enable(struct usb_ep *_ep, > u32 ecr = 0; > > hsep = our_ep(_ep); > - if (!_ep || !desc || hsep->desc || _ep->name == ep0name > + if (!_ep || !desc || hsep->ep.desc || _ep->name == ep0name In the s3c-hsudc driver the hsep->ep.desc gets set to something here and to NULL in disable_ep and initep. (the initep stuff runs But everytime a enable_ep reaches this check hsep->ep.desc is already set to something. If I remove the hsep->ep.desc check, the gadget of course works. So, either some other parts meddle with the ep.desc or something is really fishy in the driver. Any pointers in the right direction would be greatly appriciated. Thanks Heiko -- 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