I never did, but I will try.
2015-06-01 11:49 GMT-03:00 Takashi Iwai <[email protected]>:
> At Fri, 22 May 2015 09:37:24 +0200,
> Clemens Ladisch wrote:
> >
> > nightmixes wrote:
> > > kernel: usb 3-2: [4] FU [Line Playback Switch] ch = 1, val = 0/1/1
> > > kernel: usb 3-2: [4] FU [Line Playback Volume] ch = 2, val = 0/255/1
> > > kernel: usb 3-2: [2] FU [Line Playback Switch] ch = 1, val = 0/1/1
> > > kernel: usb 3-2: [2] FU [Line Playback Volume] ch = 2, val = 0/255/1
> > > kernel: usb 3-2: [7] FU [Master Playback Switch] ch = 1, val = 0/1/1
> > > kernel: usb 3-2: [7] FU [Master Playback Volume] ch = 2, val = 0/255/1
> > > kernel: usb 3-2: MU 11 has no bmControls field
> >
> > There's the culprit. Ignoring mixer unit 11 also ignores all other
> > units connected as sources.
> >
> > Try moving the bmControls check until after the source units have
> > been parsed, as in the patch below.
> >
> >
> > Regards,
> > Clemens
> >
> >
> > --- a/sound/usb/mixer.c
> > +++ b/sound/usb/mixer.c
> > @@ -1582,18 +1582,15 @@ static int parse_audio_mixer_unit(struct
> > unitid);
> > return -EINVAL;
> > }
> > - /* no bmControls field (e.g. Maya44) -> ignore */
> > - if (desc->bLength <= 10 + input_pins) {
> > - usb_audio_dbg(state->chip, "MU %d has no bmControls
> field\n",
> > - unitid);
> > - return 0;
> > - }
> >
> > num_ins = 0;
> > ich = 0;
> > for (pin = 0; pin < input_pins; pin++) {
> > err = parse_audio_unit(state, desc->baSourceID[pin]);
> > if (err < 0)
> > continue;
> > + /* no bmControls field (e.g. Maya44) -> ignore */
> > + if (desc->bLength <= 10 + input_pins)
> > + continue;
> > err = check_input_term(state, desc->baSourceID[pin],
> &iterm);
> > if (err < 0)
>
> Could you submit a proper patch for upstreaming?
>
>
> thanks,
>
> Takashi
>
------------------------------------------------------------------------------
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user