Whoops forgot to attach the patch .. Tuesday, November 2, 2010, 3:25:51 PM, you wrote: > 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 -- Best regards, Sander mailto:linux@xxxxxxxxxxxxxx
Attachment:
bandwidth-debug.patch
Description: Binary data