]> git.alsa-project.org Git - alsa-ucm-conf.git/commitdiff
HDA: mics - improve the Jack selection
authorJaroslav Kysela <perex@perex.cz>
Fri, 28 Mar 2025 10:48:07 +0000 (11:48 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 28 Mar 2025 10:51:28 +0000 (11:51 +0100)
There may be different Jack controls when hardware has
different physical audio jacks or improved sensing mechanism.

Fixes: 19fc5b9 ("ucm2: HDA: HiFi-analog/mic: Refactor the analog mic discovery")
Link: https://github.com/alsa-project/alsa-ucm-conf/pull/526
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ucm2/HDA/HiFi-mic.conf

index 65c351f1ecb2a5977cb33ea7095f330574248dea..f2a897fffee9f4fbb30c4f7a9e77fffaf43e046b 100644 (file)
@@ -22,6 +22,8 @@
 
 Define.SourceControl ""
 Define.MicJackControl ""
+Define.MicHPJackControl ""
+Define.MicHSJackControl ""
 
 # DeviceMic is pre-configured
 Define.DeviceMicName ""
@@ -45,33 +47,60 @@ Define.DeviceMic4Priority ""
 Define.DeviceMic4Jack ""
 
 # evaluate the microphone jack name
-If.hsmicjack {
+If.micjack {
+       Condition {
+               Type ControlExists
+               Control "iface=CARD,name='Mic Jack'"
+       }
+       True.Define.MicJackControl "Mic Jack"
+}
+
+If.hsjack {
        Condition {
                Type ControlExists
                Control "iface=CARD,name='Headset Mic Jack'"
        }
-       True.Define.MicJackControl "Headset Mic Jack"
-       False.If.hpmicjack {
-               Condition {
-                       Type ControlExists
-                       Control "iface=CARD,name='Headphone Mic Jack'"
-               }
-               True.Define.MicJackControl "Headphone Mic Jack"
-               False.If.hpjack {
-                       Condition {
-                               Type ControlExists
-                               Control "iface=CARD,name='Mic Jack'"
-                       }
-                       True.Define.MicJackControl "Mic Jack"
-                       False.If.micjack {
-                               Condition {
-                                       Type ControlExists
-                                       Control "iface=CARD,name='Headphone Jack'"
-                               }
-                               True.Define.MicJackControl "Headphone Jack"
-                       }
-               }
+       True.Define.MicHSJackControl "Headset Mic Jack"
+}
+
+If.hpjack {
+       Condition {
+               Type ControlExists
+               Control "iface=CARD,name='Headphone Mic Jack'"
+       }
+       True.Define.MicHPJackControl "Headphone Mic Jack"
+}
+
+If.jacksel1 {
+       Condition {
+               Type String
+               Empty "${var:MicJackControl}"
        }
+       True.Define.MicJackControl "${var:MicHPJackControl}"
+}
+
+If.jacksel2 {
+       Condition {
+               Type String
+               Empty "${var:MicJackControl}"
+       }
+       True.Define.MicJackControl "${var:MicHSJackControl}"
+}
+
+If.jacksel3 {
+       Condition {
+               Type String
+               Empty "${var:MicHPJackControl}"
+       }
+       True.Define.MicHPJackControl "${var:MicJackControl}"
+}
+
+If.jacksel4 {
+       Condition {
+               Type String
+               Empty "${var:MicHSJackControl}"
+       }
+       True.Define.MicHSJackControl "${var:MicJackControl}"
 }
 
 # determine the name of the source selection enum, if present
@@ -160,12 +189,12 @@ If.micsetup {
                                True.Define {
                                        DeviceMicName "Headphone Mic"
                                        DeviceMicComment "Headphones Stereo Microphone"
-                                       DeviceMicJack "${var:MicJackControl}"
+                                       DeviceMicJack "${var:MicHPJackControl}"
                                }
                                False.Define {
                                        DeviceMic2Name "Headphone Mic"
                                        DeviceMic2Comment "Headphones Stereo Microphone"
-                                       DeviceMic2Jack "${var:MicJackControl}"
+                                       DeviceMic2Jack "${var:MicHPJackControl}"
                                }
                        }
                }
@@ -226,7 +255,7 @@ If.micsetup {
                                        DeviceMic "Headset"
                                        DeviceMicName "Headset Mic"
                                        DeviceMicComment "Headset Mono Microphone"
-                                       DeviceMicJack "${var:MicJackControl}"
+                                       DeviceMicJack "${var:MicHSJackControl}"
                                }
                                False.If.whichdev2 {
                                        Condition {
@@ -237,7 +266,7 @@ If.micsetup {
                                                DeviceMic2 "Headset"
                                                DeviceMic2Name "Headset Mic"
                                                DeviceMic2Comment "Headset Mono Microphone"
-                                               DeviceMic2Jack "${var:MicJackControl}"
+                                               DeviceMic2Jack "${var:MicHSJackControl}"
                                        }
                                        False.If.whichdev3 {
                                                Condition {
@@ -248,13 +277,13 @@ If.micsetup {
                                                        DeviceMic3 "Headset"
                                                        DeviceMic3Name "Headset Mic"
                                                        DeviceMic3Comment "Headset Mono Microphone"
-                                                       DeviceMic3Jack "${var:MicJackControl}"
+                                                       DeviceMic3Jack "${var:MicHSJackControl}"
                                                }
                                                False.Define {
                                                        DeviceMic4 "Headset"
                                                        DeviceMic4Name "Headset Mic"
                                                        DeviceMic4Comment "Headset Mono Microphone"
-                                                       DeviceMic4Jack "${var:MicJackControl}"
+                                                       DeviceMic4Jack "${var:MicHSJackControl}"
                                                }
                                        }