If the xHCI spec is contradictory, please contact xhcisupp...@intel.com. Sarah Sharp
On Mon, Apr 01, 2013 at 10:48:35AM +0000, Ankit wrote: > With respect to latest xHCI spec : > Revision 1.0 > with errata to 8/14/12 > > Page 114: > Note: Consider the case where there are multiple TDs posted for pipe for a > single data transfer and a > Short Packet or other condition on one TD means that the data transfer is > terminated, > and that the subsequent TDs associated with the data transfer are now > invalid. > The xHC may have > read ahead on the Transfer Ring and cached the subsequent TDs. To ensure that > xHC frees any > cached information associated with a pipe in a timely manner (so that it can > reuse the cache space > for other pipes), software shall issue a Set TR Dequeue Pointer Command for > the > pipe when the > data transfer is terminated, vs. waiting for the next data transfer to be > ready > before issuing the > command. > Note: If software issues a Set TR Dequeue Pointer Command that points to a > TRB > that had previously > been partially completed TD, the xHC shall treat that TRB as the first TRB of > the TD. i.e. any prior > state associated with a partially completed TRB is lost. > > Looking at this description, I interpret that when the ShortPacket is > received, > xHC should stop executing the transfer and should wait for the driver for > next > command or doorbell. > > Page 130: > Note: If the xHC receives a short packetShort Packet from a device, then it > shall retire the current TD. If > another TD is defined on the Transfer Ring, the xHC shall advance to it and > begin IN transactions. > > Looking at this description, I interpret that when the ShortPacket is > received, > xHC should discard the current TD and start executing the next TD if > available. > > Page 172: > If a Short Packet is detected during the execution of a multi-TRB TD, the xHC > shall advance to the first > TRB of the next TD or the Enqueue Pointer (i.e.Cycle bit transition), > whichever > is encountered first. > > Looking at this description, I interpret that when the ShortPacket is > received, > xHC should discard the current TD and start executing the next TD if > available. > > These descriptions are contradictory. > > Which is the correct xHCI behavior when ShortPacket is received? > -Ankit > > -- > To unsubscribe from this list: send the line "unsubscribe linux-usb" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html