Re: xhci isoc : Not enough bandwidth for altsetting 6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 02, 2010 at 11:18:56PM +0100, Sander Eikelenboom wrote:
> With the patch Andiry made i still get the bandwidth error.
> [ 1255.993046] usb 9-3: Not enough bandwidth for new device state.
> [ 1255.998969] usb 9-3: Not enough bandwidth for altsetting 6
> [ 1256.005636] usb 9-3: Successful Endpoint Configure command

Your current output is different than the previous output:

> >>> [   35.280971] xhci_hcd 0000:02:00.0: In xhci_handle_event
> >>> [   35.280976] xhci_hcd 0000:02:00.0: `MEM_WRITE_DWORD(3'b000, 64'hffffc90000378638, 64'h78a3e668, 4'hf);
> >>> [   35.280982] xhci_hcd 0000:02:00.0: ERROR: unexpected command completion code 0x11.

That's a different error.  The messages you're getting now mean the
hardware didn't have enough bandwidth for the camera, whereas before it
indicated there was an error with the input to the hardware.  So
Andiry's patch does fix a bug.

Andiry, can you send a proper patch with an explanation and
signed-off-by line?  Thanks!

> When reading on the UVC project page about a related microsoft cam:
> 
> Despite being able to work with lower USB bandwidths, this device always requests the maximum possible bandwidth, even for the MJPEG format.
> Using two of those cameras connected to the same USB controller is thus impossible without hacking the driver.
> 
> 
> 
> So i don't know how much a xhci controller reports back as max bandwidth to a usb2.0 device ?
> (it's the only device i have plugged in, so it must be able to get all)

I'll have to look at the spec to figure out whether the xHCI host is
correctly rejecting this configuration.  It could be that it doesn't
have enough "internal resources" to support the maximum bandwidth, even
though the bus could theoretically handle the transfers fine.

But the real issue is that the UVC driver can use less bandwidth than
the device specifies in its endpoint descriptors, but there's no way for
the xHCI driver to know that.  It can only use the interval and max
packet size advertised in the endpoint descriptor.  There needs to be a
new API for USB video drivers to tell the xHCI driver what the real
bandwidth expectations are.  Until then, your webcam won't work under
xHCI.

> And just out of curiousity, is the max bandwidth of a xhci controller only higher for usb3 devices or also for usb2 ?

Only higher for USB 3.0 devices, and only those that have the "Mult"
field set in their endpoint descriptors.

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux