sound: usb: Add quirk to issue SET_CUR volume on 2nd channel

Some audio devices with two channels require the host
to issue SET_CUR command on the Volume control on
both the channels in order to function (playback or
record). Currently, the Linux Host driver issues SET_CUR
only for the 1st channel. Hence, add the quirk for
concerned devices for SET_CUR on 2nd channel.

Change-Id: I6f0bbcdfd3a8b3ccb33a1d56c252c701849a442f
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
This commit is contained in:
Ajay Agarwal 2017-06-22 11:09:33 +05:30
parent 560a996da5
commit 04282fcc79

View file

@ -1012,6 +1012,17 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
cval->res = 384;
}
break;
case USB_ID(0x1130, 0x1620): /* Logitech Speakers S150 */
/* This audio device has 2 channels and it explicitly requires the
* host to send SET_CUR command on the volume control of both the
* channels. 7936 = 0x1F00 is the default value.
*/
if (cval->channels == 2)
snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR,
(cval->control << 8) | 2, 7936);
break;
}
}