[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