diff mbox

ALSA: usb-audio: Fix forgotten conversion of control query functions

Message ID 20180423070634.10758-1-tiwai@suse.de (mailing list archive)
State New, archived
Headers show

Commit Message

Takashi Iwai April 23, 2018, 7:06 a.m. UTC
The recent code refactoring made the argument for some helper
functions to be the explicit UAC_CS_* and UAC2_CS_* value instead of
0-based offset.  However, there was one place left forgotten, and it
caused a regression on some devices appearing as the inconsistent
mixer setup.

This patch corrects the forgotten conversion.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199449
Fixes: 21e9b3e931f7 ("ALSA: usb-audio: fix uac control query argument")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/usb/mixer.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Andrew Chant April 23, 2018, 10:28 a.m. UTC | #1
On Mon, Apr 23, 2018 at 3:06 PM, Takashi Iwai <tiwai@suse.de> wrote:
> The recent code refactoring made the argument for some helper
> functions to be the explicit UAC_CS_* and UAC2_CS_* value instead of
> 0-based offset.  However, there was one place left forgotten, and it
> caused a regression on some devices appearing as the inconsistent
> mixer setup.
>
> This patch corrects the forgotten conversion.
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199449
> Fixes: 21e9b3e931f7 ("ALSA: usb-audio: fix uac control query argument")
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
>  sound/usb/mixer.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index 301ad61ed426..3387483310b1 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -1776,7 +1776,8 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid,
>                                 build_feature_ctl(state, _ftr, ch_bits, control,
>                                                   &iterm, unitid, ch_read_only);
>                         if (uac_v2v3_control_is_readable(master_bits, control))
> -                               build_feature_ctl(state, _ftr, 0, i, &iterm, unitid,
> +                               build_feature_ctl(state, _ftr, 0, control,
> +                                                 &iterm, unitid,
>                                                   !uac_v2v3_control_is_writeable(master_bits,
>                                                                                  control));
>                 }
> --
> 2.16.3
>

Thanks for the fix, looks correct to me.
UAC2 jack detection still works correctly on my device with this patch.
Takashi Iwai April 23, 2018, 10:30 a.m. UTC | #2
On Mon, 23 Apr 2018 12:28:27 +0200,
Andrew Chant wrote:
> 
> On Mon, Apr 23, 2018 at 3:06 PM, Takashi Iwai <tiwai@suse.de> wrote:
> > The recent code refactoring made the argument for some helper
> > functions to be the explicit UAC_CS_* and UAC2_CS_* value instead of
> > 0-based offset.  However, there was one place left forgotten, and it
> > caused a regression on some devices appearing as the inconsistent
> > mixer setup.
> >
> > This patch corrects the forgotten conversion.
> >
> > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199449
> > Fixes: 21e9b3e931f7 ("ALSA: usb-audio: fix uac control query argument")
> > Signed-off-by: Takashi Iwai <tiwai@suse.de>
> > ---
> >  sound/usb/mixer.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> > index 301ad61ed426..3387483310b1 100644
> > --- a/sound/usb/mixer.c
> > +++ b/sound/usb/mixer.c
> > @@ -1776,7 +1776,8 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid,
> >                                 build_feature_ctl(state, _ftr, ch_bits, control,
> >                                                   &iterm, unitid, ch_read_only);
> >                         if (uac_v2v3_control_is_readable(master_bits, control))
> > -                               build_feature_ctl(state, _ftr, 0, i, &iterm, unitid,
> > +                               build_feature_ctl(state, _ftr, 0, control,
> > +                                                 &iterm, unitid,
> >                                                   !uac_v2v3_control_is_writeable(master_bits,
> >                                                                                  control));
> >                 }
> > --
> > 2.16.3
> >
> 
> Thanks for the fix, looks correct to me.
> UAC2 jack detection still works correctly on my device with this patch.

Thanks, feel free to give your reviewed-by and/or tested-by tags, too
:)


Takashi
Nazar Mokrynskyi April 23, 2018, 10:58 a.m. UTC | #3
Successfully tested with configuration described in bug report, thanks!

Tested-by: Nazar Mokrynskyi <nazar@mokrynskyi.com>

Sincerely, Nazar Mokrynskyi
github.com/nazar-pc

23.04.18 10:06, Takashi Iwai пише:
> The recent code refactoring made the argument for some helper
> functions to be the explicit UAC_CS_* and UAC2_CS_* value instead of
> 0-based offset.  However, there was one place left forgotten, and it
> caused a regression on some devices appearing as the inconsistent
> mixer setup.
>
> This patch corrects the forgotten conversion.
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199449
> Fixes: 21e9b3e931f7 ("ALSA: usb-audio: fix uac control query argument")
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
>  sound/usb/mixer.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index 301ad61ed426..3387483310b1 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -1776,7 +1776,8 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid,
>  				build_feature_ctl(state, _ftr, ch_bits, control,
>  						  &iterm, unitid, ch_read_only);
>  			if (uac_v2v3_control_is_readable(master_bits, control))
> -				build_feature_ctl(state, _ftr, 0, i, &iterm, unitid,
> +				build_feature_ctl(state, _ftr, 0, control,
> +						  &iterm, unitid,
>  						  !uac_v2v3_control_is_writeable(master_bits,
>  										 control));
>  		}
diff mbox

Patch

diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index 301ad61ed426..3387483310b1 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1776,7 +1776,8 @@  static int parse_audio_feature_unit(struct mixer_build *state, int unitid,
 				build_feature_ctl(state, _ftr, ch_bits, control,
 						  &iterm, unitid, ch_read_only);
 			if (uac_v2v3_control_is_readable(master_bits, control))
-				build_feature_ctl(state, _ftr, 0, i, &iterm, unitid,
+				build_feature_ctl(state, _ftr, 0, control,
+						  &iterm, unitid,
 						  !uac_v2v3_control_is_writeable(master_bits,
 										 control));
 		}