On Wed, 2002-01-23 at 18:18, David Brownell wrote: > I'll just finger the usb-uhci driver here, based on your info. > Clearly it should tell you what's going on!! > > Does "uhci" behave better? Have you had a chance to > try this with an OHCI controller? Or an EHCI controller > through a USB 2.0 transaction translating hub? (Please > shock the heck out of me on that one and say "yes"! :) >
"uhci" behaves like a perfect gentleman. Not only does it tell my driver -EPIPE but it doesn't waste any time with the status stage when it sees the data stage get STALLd. Maybe it won't lock up my machine as much, either. Sorry, no OHCI or EHCI. Thanks, --gmcnutt > - Dave > > > > ----- Original Message ----- > From: "Gordon McNutt" <[EMAIL PROTECTED]> > To: "David Brownell" <[EMAIL PROTECTED]> > Cc: <[EMAIL PROTECTED]> > Sent: Wednesday, January 23, 2002 5:05 PM > Subject: Re: [linux-usb-devel] STALLed control transactions > > > > > > What's should I expect when the device STALLs a control read? How do I > > > > detect this condition so I can unlink the urb? > > > > > > Hmm, as I understand it devices are allowed to report "protocol stalls" > > > for cases like "device doesn't implement that control request". BUT > > > they're not allowed to actually halt a control endpoint ... in fact, control > > > requests must always get through. > > > > > > > The device ACKs the SETUP stage but STALLs the data stage and status > > stage because it does not support the request. Meanwhile my driver is > > waiting for the urb to come back but it never does. > > > > I do get this debug message (which I don't for normal, ACKd > > transactions): > > > > usb-uhci.c: interrupt, status 2, frame# 1604 > > > > This is the frame where the device STALLd the status stage OUT > > transaction, so I think the usb-uhci module recognizes the STALL. I > > don't know if it's supposed to invoke the urb callback at this point or > > what, but it doesn't provide my driver any indication that the > > transaction is over. > > > > Regards, > > > > --gmcnutt > > > > > You shouldn't need to unlink anything. "-EPIPE" is just a normal > > > response that gets delivered to your driver's completion function > > > when the control URB is unlinked. Once you see that report, there > > > should be no further record in usbcore that it happened. > > > > > > - Dave > > > > > > > > > > > > > > > > _______________________________________________ > [EMAIL PROTECTED] > To unsubscribe, use the last form field at: > https://lists.sourceforge.net/lists/listinfo/linux-usb-devel _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
