[alsa-devel] [PATCH 1/2] snd-usb-audio: Skip un-parseable mixer units instead of erroring

Takashi Iwai tiwai at suse.de
Sun Apr 15 15:41:47 CEST 2012


At Sat, 14 Apr 2012 21:38:42 +0100 (BST),
Mark Hills wrote:
> 
> On Sat, 14 Apr 2012, Takashi Iwai wrote:
> 
> > At Sat, 14 Apr 2012 17:19:23 +0100,
> > Mark Hills wrote:
> > > 
> > > Some interfaces reference endpoints which do not exists. To
> > > accomodate these, do not fail completely, but skip over them.
> > > 
> > > This allows the Electrix Ebox-44 with earlier firmware to be
> > > detected and used for audio.
> > 
> > Does the driver warn something?  Ignoring silently doesn't sound
> > right...
> 
> Yes, parse_audio_unit already reports the error. Though I didn't do an 
> exhaustive check for all cases.
> 
> The suggestion to do this came from Clemens (see thread "usb-audio: 
> Correct way to do a mixer quirk?"). Originally I was hoping to just quirk 
> this for the specific device, but the rest of the driver does also seem to 
> be fairly tolerant of errors if it means more devices can be used.

OK, I merged your patches now to sound git tree topic/misc branch.
Thanks!


Takashi

> 
> > 
> > Takashi
> > 
> > > 
> > > Signed-off-by: Mark Hills <mark at pogo.org.uk>
> > > ---
> > >  sound/usb/mixer.c |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> > > index ab23869..c374c72 100644
> > > --- a/sound/usb/mixer.c
> > > +++ b/sound/usb/mixer.c
> > > @@ -1388,7 +1388,7 @@ static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *r
> > >  	for (pin = 0; pin < input_pins; pin++) {
> > >  		err = parse_audio_unit(state, desc->baSourceID[pin]);
> > >  		if (err < 0)
> > > -			return err;
> > > +			continue;
> > >  		err = check_input_term(state, desc->baSourceID[pin], &iterm);
> > >  		if (err < 0)
> > >  			return err;
> > > -- 
> > > 1.7.4.4
> > > 
> > 
> 
> -- 
> Mark
> 


More information about the Alsa-devel mailing list