ALSA: usb-audio: Fix missing endian conversion
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: 5a222e8494
("ALSA: usb-audio: UAC2 jack detection")
Tested-by: Andrew Chant <achant@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2de841efae
commit
2b54f785b4
@ -1860,7 +1860,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);
|
||||
}
|
||||
@ -2562,7 +2562,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);
|
||||
|
Loading…
Reference in New Issue
Block a user