[alsa-devel] Regression in sound/usb/

Takashi Iwai tiwai at suse.de
Tue Jul 3 11:01:42 CEST 2012


At Tue, 3 Jul 2012 10:40:51 +0200,
Philipp Dreimann wrote:
> 
> On 3 July 2012 10:27, Takashi Iwai <tiwai at suse.de> wrote:
> > At Tue, 3 Jul 2012 10:20:13 +0200,
> > Philipp Dreimann wrote:
> >>
> >> On 3 July 2012 10:00, Takashi Iwai <tiwai at suse.de> wrote:
> >> > At Tue, 3 Jul 2012 09:41:09 +0200,
> >> > Philipp Dreimann wrote:
> >> >>
> >> >> On 2 July 2012 14:10, Daniel Mack <zonque at gmail.com> wrote:
> >> >> > On 01.07.2012 13:40, Philipp Dreimann wrote:
> >> >> >> Hello,
> >> >> >>
> >> >> >> my usb webcam, which happens to have a microphone too, stopped working
> >> >> >> using usb2 since I tried kernel 3.5-rc2. (It works using usb3.)
> >> >> >
> >> >> > Please try 3.5-rc5. A number of regressions were fixed just recently.
> >> >> >
> >> >> > Let me know if that version still causes problems.
> >> >>
> >> >> It still does.
> >> >
> >> > Try to pass ignore_ctl_error=1 to snd-usb-audio module.
> >> > If this works and no other problem happens, we can add a similar quirk
> >> > like some Logitech webcams.
> >>
> >> This does not seem to help.
> >
> > And webcam itself is working with our without snd-usb-audio module?
> Yes, if I blacklist the module, the webcam works fine.
> 
> > Which device at all?
> logitech c910
> 
> > Too little information to analyze.
> You guys tell me what you need to know.

Try the patch below.  If it still doesn't work, give the kernel
message again and lsusb -v output, too.


thanks,

Takashi

---
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 54607f8..f0ede13 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -387,7 +387,7 @@ add_sync_ep:
 		subs->data_endpoint->sync_master = subs->sync_endpoint;
 	}
 
-	if ((err = snd_usb_init_pitch(subs->stream->chip, subs->interface, alts, fmt)) < 0)
+	if ((err = snd_usb_init_pitch(subs->stream->chip, fmt->iface, alts, fmt)) < 0)
 		return err;
 
 	subs->cur_audiofmt = fmt;
@@ -450,7 +450,7 @@ static int snd_usb_hw_params(struct snd_pcm_substream *substream,
 		struct usb_interface *iface;
 		iface = usb_ifnum_to_if(subs->dev, fmt->iface);
 		alts = &iface->altsetting[fmt->altset_idx];
-		ret = snd_usb_init_sample_rate(subs->stream->chip, subs->interface, alts, fmt, rate);
+		ret = snd_usb_init_sample_rate(subs->stream->chip, fmt->iface, alts, fmt, rate);
 		if (ret < 0)
 			return ret;
 		subs->cur_rate = rate;


More information about the Alsa-devel mailing list