mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
ALSA: usb-audio: Use Class Specific EP for UAC3 devices.
bmAtributes offset doesn't exist in the UAC3 CS_EP descriptor.
Hence, checking for pitch control as if it was UAC2 doesn't make
any sense. Use the defined UAC3 offsets instead.
Fixes: 9a2fe9b801
("ALSA: usb: initial USB Audio Device Class 3.0 support")
Signed-off-by: Jorge Sanjuan <jorge.sanjuan@codethink.co.uk>
Reviewed-by: Ruslan Bilovol <ruslan.bilovol@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2f0d520a1a
commit
c99f0802e4
1 changed files with 8 additions and 1 deletions
|
@ -576,7 +576,7 @@ static int parse_uac_endpoint_attributes(struct snd_usb_audio *chip,
|
||||||
|
|
||||||
if (protocol == UAC_VERSION_1) {
|
if (protocol == UAC_VERSION_1) {
|
||||||
attributes = csep->bmAttributes;
|
attributes = csep->bmAttributes;
|
||||||
} else {
|
} else if (protocol == UAC_VERSION_2) {
|
||||||
struct uac2_iso_endpoint_descriptor *csep2 =
|
struct uac2_iso_endpoint_descriptor *csep2 =
|
||||||
(struct uac2_iso_endpoint_descriptor *) csep;
|
(struct uac2_iso_endpoint_descriptor *) csep;
|
||||||
|
|
||||||
|
@ -585,6 +585,13 @@ static int parse_uac_endpoint_attributes(struct snd_usb_audio *chip,
|
||||||
/* emulate the endpoint attributes of a v1 device */
|
/* emulate the endpoint attributes of a v1 device */
|
||||||
if (csep2->bmControls & UAC2_CONTROL_PITCH)
|
if (csep2->bmControls & UAC2_CONTROL_PITCH)
|
||||||
attributes |= UAC_EP_CS_ATTR_PITCH_CONTROL;
|
attributes |= UAC_EP_CS_ATTR_PITCH_CONTROL;
|
||||||
|
} else { /* UAC_VERSION_3 */
|
||||||
|
struct uac3_iso_endpoint_descriptor *csep3 =
|
||||||
|
(struct uac3_iso_endpoint_descriptor *) csep;
|
||||||
|
|
||||||
|
/* emulate the endpoint attributes of a v1 device */
|
||||||
|
if (le32_to_cpu(csep3->bmControls) & UAC2_CONTROL_PITCH)
|
||||||
|
attributes |= UAC_EP_CS_ATTR_PITCH_CONTROL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return attributes;
|
return attributes;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue