[alsa-devel] [PATCH] ALSA: usb-audio: Fix missing endian conversion

Andrew Chant achant at google.com
Tue Apr 24 13:28:39 CEST 2018


On Mon, Apr 23, 2018 at 9:24 PM, Takashi Iwai <tiwai at suse.de> wrote:
>
> The UAC2 jack detection support introduced the bmControls checks in a
> couple of places, but they forgot the endian conversion; the
> bmControls of UAC2 terminal descriptor is __le16, not a byte like in
> UAC1.
>
> Fixes: 5a222e849452 ("ALSA: usb-audio: UAC2 jack detection")
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
Tested-by: Andrew Chant <achant at google.com>
>
> ---
>  sound/usb/mixer.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index 301ad61ed426..f78b500b3c0e 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -1859,7 +1859,7 @@ static int parse_audio_input_terminal(struct mixer_build *state, int unitid,
>         check_input_term(state, d->bTerminalID, &iterm);
>         if (state->mixer->protocol == UAC_VERSION_2) {
>                 /* Check for jack detection. */
> -               if (uac_v2v3_control_is_readable(d->bmControls,
> +               if (uac_v2v3_control_is_readable(le16_to_cpu(d->bmControls),
>                                                  UAC2_TE_CONNECTOR)) {
>                         build_connector_control(state, &iterm, true);
>                 }
> @@ -2561,7 +2561,7 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
>                         if (err < 0 && err != -EINVAL)
>                                 return err;
>
> -                       if (uac_v2v3_control_is_readable(desc->bmControls,
> +                       if (uac_v2v3_control_is_readable(le16_to_cpu(desc->bmControls),
>                                                          UAC2_TE_CONNECTOR)) {
>                                 build_connector_control(&state, &state.oterm,
>                                                         false);
> --
> 2.16.3
>

Tests fine, thank you.  Did you intentionally leave the
UAC2_CS_CONTROL_CLOCK_VALID reading at line 1575 for another patch?


More information about the Alsa-devel mailing list