Re: usb sound issue - any ideas?

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

 



On Wed, Jul 11, 2012 at 11:04:05AM +0800, Andiry Xu wrote:
> On 07/11/2012 03:37 AM, Dr. Ing. Dieter Jurzitza wrote:
> >Dear listmembers,
> >dear Sarah, dear Andiry,
> >Andiry's suggestion (uncomment the return 0 - statement) fixed my issue, the
> >usb soundcard remains active after a login-logout; however, as I understood
> >Sarah's comment this is no more than a plaster on the problem.
> >
> >So, I am willing to do more testing - but I depend on your inputs as I am
> >lacking the required programming skills to actually understand what's
> >happening within the driver.
> >
> >Please let me know what you'd suggest to do next ...
> >
> >Thank you very much,
> >take care
> >
> >
> 
> Hi Dieter,
> 
> Thanks for the test.
> 
> Sarah,
> 
> I don't know why you regard it as an invalid fix and think the
> disabled endpoint is abnormal.

All endpoints should go into the enabled state when the USB core changes
the alternate interface setting.

A disabled endpoint means the xHCI driver has never enabled an endpoint,
which AFAICT could only happen if the USB core thinks one alternate
interface is installed, but the xHCI hardware thinks another alternate
interface is installed.

So I'm concerned that there is a deeper issue here, namely that the USB
core is attempting to drop an endpoint that was never part of the
alternate interface setting that was originally installed.

Or perhaps the host controller simply erroneously never moves the
endpoint to the enabled state after the Configure Endpoint command.

Either way, I would like to know why we're seeing the disabled endpoint,
which is why I would like to see full dmesg from the time the device is
plugged in, with both CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING
turned on.

> See xHCI spec 4.6.6:
> 
> ======================================================================
> For each endpoint indicated by a Drop Context flag = '1':
> 
> 	If the Output Endpoint Context is not in the Disabled state:
> 		The endpoint related resources are subtracted from the 	Resource
> Required variable.
> 		If the endpoint is periodic, then the bandwidth assigned to the
> endpoint is subtracted from the bandwidth Required variable.
> 
> 	else // Output Endpoint Context is in the Disabled state:
> 		Do nothing
> ======================================================================
> 
> 
> Please note this is host controller behavior description, so "Do
> nothing" means the host will do nothing with a Disabled endpoint
> with drop flag = 1. It does not mean software should ignore the drop
> request and return -EINVAL for SET_INTERFACE request.
> 
> And - Spec says what it should do with Disabled endpoint situation,
> that implies the situation is expected - and also valid.

Valid, but troubling.

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