From: Cássio Gabriel Date: Wed, 11 Mar 2026 20:00:10 +0000 (-0300) Subject: ALSA: usb-audio: map UAC3 front wide channels in convert_chmap_v3() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=103a7b97c63905ab4d1463bf040e27f668e6a340;p=thirdparty%2Flinux.git ALSA: usb-audio: map UAC3 front wide channels in convert_chmap_v3() convert_chmap_v3() translates UAC3 channel relationship values into ALSA channel-map positions. UAC3_CH_FRONT_WIDE_LEFT and UAC3_CH_FRONT_WIDE_RIGHT currently fall back to SNDRV_CHMAP_UNKNOWN, although ALSA already provides matching channel-map positions via SNDRV_CHMAP_FLW and SNDRV_CHMAP_FRW. Map these two UAC3 positions to their ALSA equivalents and update the comment to clarify that unsupported UAC3 channel relationships remain reported as SNDRV_CHMAP_UNKNOWN. No functional change for other channel relationships. Signed-off-by: Cássio Gabriel Link: https://patch.msgid.link/20260311200010.103710-1-cassiogabrielcontato@gmail.com Signed-off-by: Takashi Iwai --- diff --git a/sound/usb/stream.c b/sound/usb/stream.c index d38c39e28f38f..2532bf97e05e0 100644 --- a/sound/usb/stream.c +++ b/sound/usb/stream.c @@ -366,6 +366,8 @@ snd_pcm_chmap_elem *convert_chmap_v3(struct uac3_cluster_header_descriptor /* * TODO: this conversion is not complete, update it * after adding UAC3 values to asound.h + * NOTE: not all UAC3 channel relationship have a + * direct ALSA chmap equivalent. */ switch (is->bChRelationship) { case UAC3_CH_MONO: @@ -390,6 +392,12 @@ snd_pcm_chmap_elem *convert_chmap_v3(struct uac3_cluster_header_descriptor case UAC3_CH_FRONT_RIGHT_OF_CENTER: map = SNDRV_CHMAP_FRC; break; + case UAC3_CH_FRONT_WIDE_LEFT: + map = SNDRV_CHMAP_FLW; + break; + case UAC3_CH_FRONT_WIDE_RIGHT: + map = SNDRV_CHMAP_FRW; + break; case UAC3_CH_SIDE_LEFT: map = SNDRV_CHMAP_SL; break;