On Mon, Apr 23, 2018 at 9:24 PM, Takashi Iwai <tiwai@xxxxxxx> 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@xxxxxxx> Tested-by: Andrew Chant <achant@xxxxxxxxxx> > > --- > 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? _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel