On Tue, Nov 02, 2010 at 03:11:36PM +0800, Xu, Andiry wrote: > > -----Original Message----- > > From: Sarah Sharp [mailto:sarah.a.sharp@xxxxxxxxxxxxxxx] > > Sent: Tuesday, November 02, 2010 1:51 AM > > To: Sander Eikelenboom > > Cc: Xu, Andiry; linux-usb@xxxxxxxxxxxxxxx > > Subject: Re: xhci isoc : Not enough bandwidth for altsetting 6 > > > > This is the endpoint context that I think the host controller is > > complaining about: > > > > > [ 35.280806] xhci_hcd 0000:02:00.0: Endpoint 02 Context: > > > [ 35.280808] xhci_hcd 0000:02:00.0: @ffff88007c3f9080 (virt) > @7c3f9080 > > (dma) 0x000000 - ep_info > > > [ 35.280811] xhci_hcd 0000:02:00.0: @ffff88007c3f9084 (virt) > @7c3f9084 > > (dma) 0x00022a - ep_info2 > > > > The line above very odd. It means: > > - bus error is 1 (which only happens if we find an isoc endpoint > > with usb_endpoint_xfer_isoc()) > > The CErr field for isoc endpoints should be set to 0. Refer to xHCI 1.0 > spec Table 57: > > Note: CErr does not apply to Isoch endpoints and shall be set to '0' if > EP Type = Isoch Out ('1') or Isoch In ('5'). There's a note in the xHCI spec 0.96: "Note: Software shall not program CErr to a value of â0â when the Slot Context Speed field indicates a Full- or Low-speed device. This combination could result in undefined behavior." Full speed devices can have isochronous endpoints. That also conflicts with section 4.8.2.4 that talks about how to set up interrupt and isochronous endpoints: "CErr = 3. Enables 3 retries." You're right that the 1.0 spec says differently in 4.3.6: "CErr = 3, or 0 for an Isoch endpoint." And Table 6 still has the note about FS/LS devices, but it's followed by a section about how CErr doesn't apply to isochronous endpoints. However, section 4.8.2.4 still says of interrupt and isochronous endpoint initialization: "CErr = 3. Enables 3 retries." I'm going to send an email to the xHCI architect and ask him to clarify. But I suspect that you're right that CErr should be 0 for isochronous endpoints. Sarah Sharp -- 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