At Thu, 16 Aug 2012 13:26:48 +0200, Clemens Ladisch wrote:
Daniel Mack wrote:
Clemens, the patch below fixes a "sleeping while atomic" bug in the USB audio driver, but it raises a new "not enough bandwidth" issue, which might even be unreleated.
+++ b/sound/usb/pcm.c @@ -544,6 +544,9 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
- /* clear the pending deactivation on the target EPs */
- deactivate_endpoints(subs);
The HC drivers calculate bandwidth for a stream when the first URB is submitted or the last one is completed. (xHCI does this when the altsetting is changed; IIRC there are plans to have other HCDs do the same.)
This patch doesn't change the relative order of URB submissions and cancellations. The descriptions in bug 46011 indicates that we're running into the not-completely-fixed EHCI scheduling bugs.
Yes, this reminds me of a known issue...
In anyway, the fix for the bad EP deactivation was already merged to sound git tree and will be included in the next pull request for 3.6-rc3.
Takashi