I never did, but I will try.
2015-06-01 11:49 GMT-03:00 Takashi Iwai <tiwai@xxxxxxx>:
At Fri, 22 May 2015 09:37:24 +0200,
Could you submit a proper patch for upstreaming?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)
thanks,
Takashi
------------------------------------------------------------------------------
_______________________________________________ Alsa-user mailing list Alsa-user@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-user