On some Dell machines with realtek codec, they have a headset audio jack which supports headphone, headset and pure microphone, but this audio jack can only detect something is plugged in but doesn't have capabilites to distinguish what is plugged in. So we need to apply the fixup similar to ALC298_FIXUP_DELL1_MIC_NO_PRESENCE to the kernel driver. When something is plugged in, a pop-up dialogue shows up and users can select what is plugged in. On some Dell machines (especially desktop computers), they have no internal microphone, if users plug a headphone and select the headphone, the headphone is supposed to work, but there is no sound can be played via headphone. Through debugging, I found the root cause has something to do with the active_port of pa-source, since there is no internal microphone, and there is no other available input devices, the headphone-mic and headset-mic will be the candidates to be the active_port, and they have the same priority and headphone-mic is scanned earlier than headset-mic, so the headphone-mic is set to be the active_port. After users select the headphone, the function alc_update_headset_mode() in the kernel driver will be called, in this function it will check what is the default input device for that jack, if it is headphone-mic, that means users want this jack to work as a pure microphone jack, then it will configure the codec and the jack is changed to be a mic-in jack. As a result even users plug and select the headphone, but this jack can't work with headphone. A simple fix for this issue is to exchange the position of headphone-mic and headset-mic, then the headset-mic will be the active_port of pa-source if there is no internal microphone and no other available input devices. Signed-off-by: Hui Wang <hui.wang at canonical.com> --- src/modules/alsa/mixer/profile-sets/default.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf index f412058..16ee567 100644 --- a/src/modules/alsa/mixer/profile-sets/default.conf +++ b/src/modules/alsa/mixer/profile-sets/default.conf @@ -112,7 +112,7 @@ priority = 2 device-strings = front:%f channel-map = left,right paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2 -paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic +paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic analog-input-headphone-mic priority = 10 [Mapping analog-surround-21] -- 1.9.1