From c3bdca7851036acb2ddcb2d012133d882de11b2b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 15 Jan 2026 15:53:03 +0100 Subject: [PATCH] USB-Audio: improve channel detection for Solid State Labs SSL 2 It seems that there are two variants with different capture channel count. Try to identify them using USB bcdDevice value. Link: https://github.com/alsa-project/alsa-ucm-conf/issues/676 Signed-off-by: Jaroslav Kysela --- ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf | 6 +++--- ucm2/USB-Audio/SolidStateLabs/SSL2.conf | 14 +++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf index 8663384..34cac9c 100644 --- a/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf +++ b/ucm2/USB-Audio/SolidStateLabs/SSL2-HiFi.conf @@ -6,7 +6,7 @@ Macro [ Name "ssl2_mono_in" Direction Capture Channels 1 - HWChannels 4 + HWChannels "${var:DirectCaptureChannels}" HWChannelPos0 MONO HWChannelPos1 MONO } @@ -31,7 +31,7 @@ SectionDevice."Mic1" { Macro.pcm_split.SplitPCMDevice { Name "ssl2_mono_in" Direction Capture - HWChannels 4 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 0 ChannelPos0 MONO @@ -47,7 +47,7 @@ SectionDevice."Mic2" { Macro.pcm_split.SplitPCMDevice { Name "ssl2_mono_in" Direction Capture - HWChannels 4 + HWChannels "${var:DirectCaptureChannels}" Channels 1 Channel0 1 ChannelPos0 MONO diff --git a/ucm2/USB-Audio/SolidStateLabs/SSL2.conf b/ucm2/USB-Audio/SolidStateLabs/SSL2.conf index 694b718..ea5d161 100644 --- a/ucm2/USB-Audio/SolidStateLabs/SSL2.conf +++ b/ucm2/USB-Audio/SolidStateLabs/SSL2.conf @@ -1,5 +1,17 @@ Comment "Solid State Labs SSL 2" +Define.DirectPlaybackChannels 2 +Define.DirectCaptureChannels 4 + +If.fw { + Condition { + Type RegexMatch + String "${sys-card:device/../bcdDevice}" + Regex "00.." + } + True.Define.DirectCaptureChannels 2 +} + SectionUseCase."HiFi" { Comment "HiFi" File "/USB-Audio/SolidStateLabs/SSL2-HiFi.conf" @@ -7,4 +19,4 @@ SectionUseCase."HiFi" { Include.dhw.File "/common/directm.conf" -Macro.0.DirectUseCase { Id="Direct" PlaybackChannels=2 CaptureChannels=4 } +Macro.0.DirectUseCase { Id="Direct" PlaybackChannels="${var:DirectPlaybackChannels}" CaptureChannels="${var:DirectCaptureChannels}" } -- 2.47.3