Well, the semantic meaning of STALL really varies among the DWGs. STALL in usb-storage land is a pretty common occurance, actually. It's used to indicate a problem in a single phase of the transaction (which is multiple transfers) and keep synchronization between host and target.
Matt
On Tue, Jul 16, 2002 at 11:45:28AM -0700, Steve Calfee wrote:
> At 10:33 AM 7/16/02 -0700, Matthew Dharm wrote:
> >That's what a clean unlink looks like under EHCI? Okay, then....
> >
> >The only reason command_abort() gets called is that the command has been
> >out for over 20 seconds. For that to occur during the data phase (and
> >combined with the 'hang' at the CSW stage) means that the HCD thinks that
> >the device is NAKing.
> >
> >My -guess- is that the data toggle has been screwed up somewhere. If it's
> >not an EHCI problem, then the device is basically refusing to transfer
> >anything in. We should get status or data or _something_, but never
> >silence from the device.
> Actually in the USB spec, no response is a necessary state in the protocol.
> ACK means that the receiver got the packet and it was ok. NAK means the
> receiver got the packet and it was ok, but the receiver is not ready and
> wishes to have this resent later (in this case only a device issues a NAK.
> A host cannot NAK - he just shouldn't ask if he is not ready for the data).
> A STALL is an interesting response, it means good data got to the device,
> the device could accept the data, but the control/SETUP data made no sense.
> It generally means the higher level driver is broken. A host cannot STALL.
>
> In the case of a real transmission error ie bad crc or bad PID or bad
> data0/1 state the proper response from the receiver is to not respond.
> There is a spec'd minimum number of usb bus clocks (3 or 4, I dont
> remember) that defines a timeout on the bus, so the sender knows that the
> transmission failed and needs to be retried. The problem is if the host
> screws up the data0/1 state the device will continue to no-response the bad
> packet forever...until a higher level timeout occurs in the host and the
> higher level driver gets the state fixed.
>
> Regards, Steve.
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
G: Baaap booop BAHHHP.
Mir: 9600 Baud?
Mik: No, no! 9600 goes baap booop, not booop bahhhp!
-- Greg, Miranda and Mike
User Friendly, 12/31/1998
msg07799/pgp00000.pgp
Description: PGP signature
