Re: [PATCH 3.12 033/118] usb: xhci: Link TRB must not occur within a USB payload burst

Alan Stern
2014-01-10T15:12:43Z

On Thu, 9 Jan 2014, Sarah Sharp wrote:

> > I can't see anything obvious either.
> > However there is no response to the 'stop endpoint' command.
> > Section 4.6.9 (page 107 of rev1.0) states that the controller will complete
> > any USB IN or OUT transaction before raising the command completion event.
> > Possibly it is too 'stuck' to complete the transaction?
>
> The host has to stop processing the transaction, it can't "wait" for the
> transaction to finish. "The Stop Endpoint Command is expected to stop
> endpoint activity as soon as possible, which may mean that it stops in
> the middle of a TRB."

Just to clarify for Walt: There's a difference between a transaction
and a transfer. Transfers can take an indefinitely long time to
complete, because the device doesn't have to accept or send any data
until it is ready.

By contrast, transactions have sharply bounded lifetimes. A
transaction consists of some maximum number of packets (usually 3,
sometimes a little more) with upper limits on the time intervals
between them.

A TRB lies somewhere between a transfer and a transaction. A single
TRB can encompass a single transaction or multiple transactions, and a
single transfer can involve more than one TRB.

Alan Stern