Hi, On Tue, Mar 05, 2013 at 09:42:36AM +0800, Chen Gang wrote: > 于 2013年03月04日 22:35, Felipe Balbi 写道: > > this is the wrong fix, I believe. Looks like when I wrote the commits > > you mention, I deleted more code then I should. Looks like the real fix > > would be to add back: > > > > /* report disconnect; the driver is already quiesced */ > > if (driver) { > > spin_unlock(&dev->lock); > > driver->disconnect(&dev->gadget); > > spin_lock(&dev->lock); > > } > > > > ok, thanks. > > > > since stop_activity() also gets called from RESET interrupt, and in that > > case we need to call driver->disconnect(). Can you make a simple test > > that would take current code and issue a device reset to see if that > > would break, then apply my suggestion above and run the same test again? > > > > ok, thanks, that is what I should do. > > but excuse me for my time limitation: > in these days, my father had a serious heart disease in hospital. > within this week end, most of my time has to be in hospital. > (God bless, and thank Jesus Christ, my father is safe now). > within my company (Asianux), also has something to do. I'm glad to hear your father is better now :-) Hope he recovers soon. > so I try to finish it in next week end (Mar-15-2013). > > if we can not bear the time point, please reply (or prefer another > member to finish it) no problem, take your time. Family is more important than a bugfix. I don't have that HW anyway and can't test fixes to it. > > If you want, I have a simple libusb-1.0-based little app which can issue > > resets to any device you ask. Currently it will reset a device 10K > > times but you can remove the for loop if you want: > > thank you for your information, they are valuable to me. no problem, any time. -- balbi
Attachment:
signature.asc
Description: Digital signature