Lenovo m720s combined audio jack not working (ALC233)
Hey,
The front audio jack on my newly purchased (but not new) Lenovo m720s doesn't make a microphone output appear in PulseAudio when a headset is plugged in. The headphone part works correctly though. The "sof-hda-dsp Front Headphone" evdev device will switch the state of SW_HEADPHONE_INSERT as expected.
Does anyone know whether the headphones/headset switching is supposed to be automatic, or would that trigger a "what did you plug in" dialogue as on some Dell machines I've worked with?
I couldn't find any quirks in sound/pci/hda that would be directly related to this problem (eg. Lenovo, ALC233 and mic presence), so I'm a bit stumped.
I've attached the pinout information from alsa-info.
Any ideas?
Cheers
On Tue, 2020-08-04 at 11:56 +0200, Bastien Nocera wrote:
Hey,
The front audio jack on my newly purchased (but not new) Lenovo m720s doesn't make a microphone output appear in PulseAudio when a headset is plugged in. The headphone part works correctly though. The "sof-hda- dsp Front Headphone" evdev device will switch the state of SW_HEADPHONE_INSERT as expected.
Does anyone know whether the headphones/headset switching is supposed to be automatic, or would that trigger a "what did you plug in" dialogue as on some Dell machines I've worked with?
I couldn't find any quirks in sound/pci/hda that would be directly related to this problem (eg. Lenovo, ALC233 and mic presence), so I'm a bit stumped.
I've attached the pinout information from alsa-info.
I should note that I'm using BIOS version M1UKT21A, and that the latest is 25 releases newer, so that it's very possible that a newer BIOS would fix this. I'll have to try that first.
Removed David from the CC:, as I don't have a current address for him.
On Tue, 2020-08-04 at 12:03 +0200, Bastien Nocera wrote:
On Tue, 2020-08-04 at 11:56 +0200, Bastien Nocera wrote:
Hey,
The front audio jack on my newly purchased (but not new) Lenovo m720s doesn't make a microphone output appear in PulseAudio when a headset is plugged in. The headphone part works correctly though. The "sof- hda- dsp Front Headphone" evdev device will switch the state of SW_HEADPHONE_INSERT as expected.
Does anyone know whether the headphones/headset switching is supposed to be automatic, or would that trigger a "what did you plug in" dialogue as on some Dell machines I've worked with?
I couldn't find any quirks in sound/pci/hda that would be directly related to this problem (eg. Lenovo, ALC233 and mic presence), so I'm a bit stumped.
I've attached the pinout information from alsa-info.
I should note that I'm using BIOS version M1UKT21A, and that the latest is 25 releases newer, so that it's very possible that a newer BIOS would fix this. I'll have to try that first.
Updating to BIOS M1UKT59A [1] didn't fix the problem. dmesg contains some more "pin mapping" info: [ 6.728470] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now [ 9.753117] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link iDisp1 [ 9.753118] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link iDisp2 [ 9.753119] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link iDisp3 [ 9.753119] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link Analog Playback and Capture [ 9.753119] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link Digital Playback and Capture [ 9.753121] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link dmic01 [ 9.753121] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link dmic16k [ 10.110831] skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi1 <-> iDisp1 Pin mapping ok [ 10.110833] skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi2 <-> iDisp2 Pin mapping ok [ 10.110834] skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi3 <-> iDisp3 Pin mapping ok [ 10.110836] skl_hda_dsp_generic skl_hda_dsp_generic: Analog Codec DAI <-> Analog CPU DAI mapping ok [ 10.110838] skl_hda_dsp_generic skl_hda_dsp_generic: Digital Codec DAI <-> Digital CPU DAI mapping ok [ 10.110839] skl_hda_dsp_generic skl_hda_dsp_generic: dmic-hifi <-> DMIC01 Pin mapping ok [ 10.110840] skl_hda_dsp_generic skl_hda_dsp_generic: dmic-hifi <-> DMIC16k Pin mapping ok [ 10.110847] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC 6 mapping ok [ 10.110851] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC16kHz 7 mapping ok [ 10.110857] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Analog 0 mapping ok [ 10.110863] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Digital 1 mapping ok [ 10.110867] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI1 3 mapping ok [ 10.110871] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI2 4 mapping ok [ 10.110875] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI3 5 mapping ok [ 10.111103] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi3 overwritten [ 10.111106] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi2 overwritten [ 10.111109] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi1 overwritten [ 10.111112] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Codec Output Pin1 overwritten [ 10.111114] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Codec Input Pin1 overwritten [ 10.111118] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Analog Codec Playback overwritten [ 10.111121] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Digital Codec Playback overwritten [ 10.111125] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Alt Analog Codec Playback overwritten [ 10.111129] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Analog Codec Capture overwritten [ 10.111132] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Digital Codec Capture overwritten [ 10.111136] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Alt Analog Codec Capture overwritten [ 10.128765] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input26 [ 10.129042] input: sof-hda-dsp Front Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input27 [ 10.129230] input: sof-hda-dsp Line Out as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input28 [ 10.129269] input: sof-hda-dsp Front Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input29 [ 10.129484] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input30 [ 10.129516] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input31 [ 10.129734] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input32
[1]: which is scary as heck, as the thing tells you the new BIOS doesn't match what you want to upgrade and asks whether you want to proceed, but proceeds anyway after a couple of seconds, then fails to boot at least 3 or 4 times after the upgrade.
On 8/4/20 4:56 AM, Bastien Nocera wrote:
Hey,
The front audio jack on my newly purchased (but not new) Lenovo m720s doesn't make a microphone output appear in PulseAudio when a headset is plugged in. The headphone part works correctly though. The "sof-hda-dsp Front Headphone" evdev device will switch the state of SW_HEADPHONE_INSERT as expected.
I would first try with the HDaudio legacy driver to separate variables. This will likely prevent your internal DMICs from working but will help you test without UCM.
options snd_intel_dspcfg dsp_driver=1
That way you'll be able to see if the jack detection actually works.
If it doesn't, it's a codec configuration/driver issue. It it does, it's somehow a PulseAudio/UCM issue. If indeed the information is reported as an event then I am leaning to a UCM issue with the wrong mixer being used.
Does anyone know whether the headphones/headset switching is supposed to be automatic, or would that trigger a "what did you plug in" dialogue as on some Dell machines I've worked with?
I couldn't find any quirks in sound/pci/hda that would be directly related to this problem (eg. Lenovo, ALC233 and mic presence), so I'm a bit stumped.
I've attached the pinout information from alsa-info.
Any ideas?
Cheers
On Tue, 2020-08-04 at 09:37 -0500, Pierre-Louis Bossart wrote:
On 8/4/20 4:56 AM, Bastien Nocera wrote:
Hey,
The front audio jack on my newly purchased (but not new) Lenovo m720s doesn't make a microphone output appear in PulseAudio when a headset is plugged in. The headphone part works correctly though. The "sof- hda-dsp Front Headphone" evdev device will switch the state of SW_HEADPHONE_INSERT as expected.
I would first try with the HDaudio legacy driver to separate variables. This will likely prevent your internal DMICs from working but will help you test without UCM.
options snd_intel_dspcfg dsp_driver=1
That way you'll be able to see if the jack detection actually works.
If it doesn't, it's a codec configuration/driver issue. It it does, it's somehow a PulseAudio/UCM issue. If indeed the information is reported as an event then I am leaning to a UCM issue with the wrong mixer being used.
What sort of "event" are you talking about? I see events on the input device that's associated with the jack, though I don't know how that gets routed inside ALSA.
In any case, the module option seems to bring it back to a working state. Any hints as to what to do now for the PulseAudio bug report if I wanted to diagnose and report this is a UCM problem?
Cheers
What sort of "event" are you talking about? I see events on the input device that's associated with the jack, though I don't know how that gets routed inside ALSA.
The values of '* Jack' mixers are used by UCM, so you can look at them with amixer. I can never remember the amixer syntax so what I do is list the controls with 'amixer -Dhw:0 controls' and then check their values with 'amixer -Dhw:0 cget num_id=<num_id from list>'
In any case, the module option seems to bring it back to a working state. Any hints as to what to do now for the PulseAudio bug report if I wanted to diagnose and report this is a UCM problem?
ok, that's progress if this is not a codec issue :-)
I only have a limited understanding of jack detection, but all UCM configs for your case should be in [1].
I would check if the value of the controls with amixer and maybe if the control name is wrong. Today 'Headphone Mic Jack' or 'Mic Jack' are used, and I wonder if this is 'Front Headphone Jack' in your case. Maybe you can share the alsa-info results so that we can all check if there's a naming issue.
[1] https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/HDA-Intel/HiF...
participants (2)
-
Bastien Nocera
-
Pierre-Louis Bossart