]> git.alsa-project.org Git - alsa-ucm-conf.git/commitdiff
chtnau8824: Mono speaker fixes
authorHans de Goede <hdegoede@redhat.com>
Sat, 21 Oct 2023 14:31:09 +0000 (16:31 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 31 Oct 2023 15:37:36 +0000 (16:37 +0100)
2 mono speaker setup fixes:

1. Use the kernel's components string to check for a mono-speaker device
when the board has a components string.

2. So far known nau8824 boards with a mono speaker where using the right
speaker channel, which is unusual. Normally mono speaker setups use
only the left speaker channel. The Cyberbook T116 tablet is a nau8824
based model, which indeed uses the left speaker channel for its single
speaker.

Modify ucm2/codecs/nau8824/MonoSpeaker.conf to send a left+right
channel mix to both speaker channels, so that things will work
independent of which speaker channel is used for a mono setup.

Link: https://lore.kernel.org/alsa-devel/20231021143109.52210-1-hdegoede@redhat.com/
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ucm2/Intel/chtnau8824/HiFi.conf
ucm2/codecs/nau8824/MonoSpeaker.conf

index c3d830dc3d4ceeb6f546cbebe9c4be707a41d99d..1a1faf40ad591351b6881dc04f3cb9e2e3b0f6c3 100644 (file)
@@ -14,6 +14,21 @@ If.Controls {
        }
 }
 
+# Figure out which components are in use on the device, we check both the
+# components string (present on newer kernels) as well as checking for DMI
+# strings for compatibility with older kernels. Note DMI matches for new
+# models should only be added to the kernel, this UCM profile will then
+# automatically pick up the info from the components string.
+
+If.components-mono-spk {
+       Condition {
+               Type String
+               Haystack "${CardComponents}"
+               Needle "cfg-spk:1"
+       }
+       True.Define.Speaker "MonoSpeaker"
+}
+
 If.cfg-mspk {
        Condition {
                Type RegexMatch
index 6b4ef8a9f6cfc7693dfd5d5189c4b1e3414b9122..54281332d47eb4de4e8f91e2f3353d72b98e6bf9 100644 (file)
@@ -11,9 +11,10 @@ SectionDevice."Speaker" {
        ]
 
        EnableSequence [
-               # nau8824 mono speaker boards have the speaker on the right chan
-               cset "name='Speaker Left DACL Volume' 0"
-               cset "name='Speaker Left DACR Volume' 0"
+               # Some nau8824 mono speaker boards have the speaker on the right chan
+               # others on the left, enable output of both channels on both speakers
+               cset "name='Speaker Left DACL Volume' 1"
+               cset "name='Speaker Left DACR Volume' 1"
                cset "name='Speaker Right DACL Volume' 1"
                cset "name='Speaker Right DACR Volume' 1"
                cset "name='Ext Spk Switch' on"