On 05/10/2012 10:38 PM, Alan Stern wrote: > On Wed, 9 May 2012, Sarah Sharp wrote: > >>> Anyway, I just checked the xHCI spec. As far as I can see, it doesn't >>> directly require that a transfer TRB's completion code be set to Short >>> Packet when the ISP flag isn't set. So it may be a mistake to rely on >>> that -- presumably you don't set ISP for ischronous transfers. >> >> The xHCI driver does set ISP for all TRBs for an isochronous IN >> endpoint, see drivers/usb/host/xhci-ring.c:xhci_queue_isoc_tx() >> >> /* Only set interrupt on short packet for IN EPs */ >> if (usb_urb_dir_in(urb)) >> field |= TRB_ISP; >> >> Otherwise we won't get an event when a short packet occurs. Since we >> set ISP on all isoc TRBs, the host should have set the completion code >> to Short Packet. > > Okay. Why do you care about short packets on isochronous transfers? I > wouldn't think they make any difference. > If we do not set ISP for ISOC IN transfers, there is no event produced when a short packet occurs and the driver cannot update the status and length field of iso_packet_descriptor accordingly. Thanks, Andiry -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html