You are not logged in.

#1 2022-08-31 08:53:02

vavra.7
Member
Registered: 2021-05-22
Posts: 15

No microphone input on Alder Lake (Dell XPS Plus 9320)

I have an issue with mic on my laptop Dell XPS Plus. Following this page Dell XPS Plus (9320) I have properly installed sof-firmware package.

lspci | grep audio
0000:00:1f.3 Multimedia audio controller: Intel Corporation Alder Lake PCH-P High Definition Audio Controller (rev 01)

So my audio output is working but mic behaves like muted all the time.

Unless following scenario.

On the laptop the Arch is installed along side Windows. First I choose Windows OS in Grub and let it start. Then I restart (not power off) the system and consequently choose Arch in Grub. Then mic is working also in Arch. As far the laptop is not powered off the mic is working. But once I power off the laptop and then start directly Arch the mic is not working again.

Can you please help me to understand what is going on and how can I fix this issue?

Offline

#2 2022-08-31 09:58:57

JoeyCorleone
Member
Registered: 2022-01-22
Posts: 88

Re: No microphone input on Alder Lake (Dell XPS Plus 9320)

Disabling fast boot in Windows should fix this.

Offline

#3 2022-08-31 11:04:34

vavra.7
Member
Registered: 2021-05-22
Posts: 15

Re: No microphone input on Alder Lake (Dell XPS Plus 9320)

Thank you for the answer JoeyCorleone.

- I have disabled fast startup in Windows
- In BIOS there is several options for Fastboot: "Minimal", "Thorough" and "Auto". I tried all of them.

Unfortunately there is no difference in mic behavior for any of change above.

Offline

#4 2022-09-05 06:08:38

vavra.7
Member
Registered: 2021-05-22
Posts: 15

Re: No microphone input on Alder Lake (Dell XPS Plus 9320)

Any advice on this? Still it is a big problem for me.

Offline

#5 2022-09-06 21:05:22

megabytex
Member
Registered: 2022-08-15
Posts: 5

Re: No microphone input on Alder Lake (Dell XPS Plus 9320)

Hello, you probably need to toggle GPIO pin in order to enable it. Something similar happens to me on Asus OLED Zenbook (UX5400), there is no sound/mic is muted, until I toggle GPIO pin manually as root (hda-verb is a command from alsa-tools package)

hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00 
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01 
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01 
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01 
hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00

To find out correct values for my laptop I've used hda-analyzer python script.
Hope this helps. Thanks.

Offline

#6 2022-09-07 17:37:28

vavra.7
Member
Registered: 2021-05-22
Posts: 15

Re: No microphone input on Alder Lake (Dell XPS Plus 9320)

Thank for the reply but I am still quite lost. I have installed alsa-tools so, yes, I can use hda-verb command. But hda-analyzer doesn't seem to be alive. Link here https://www.alsa-project.org/main/index … A_Analyzer is dead. I found also script here https://gist.github.com/cransom/f06bd8d … 51d6f0fcec but it throws error. So I don't really have an idea what should I do with the hda-verb command. sad

Offline

#7 2022-09-10 15:32:14

megabytex
Member
Registered: 2022-08-15
Posts: 5

Re: No microphone input on Alder Lake (Dell XPS Plus 9320)

Hey, sorry for the late reply. I guess I forgot that hda-analyzer is a nightmare to install, especially because its obsolete and removed from the alsa-project. You can still get it from repo history, but then python2 (with all dependencies) is also difficult to install, becuse that's deprecated, too big_smile

Anyway, besides waiting for updated kernel drivers, you can try to do it the manual way, but it's a bit like shooting in the dark, especially if you dont know exact pin layout and masking.  On Windows, audio service driver toggles this pin already, and then when you reboot to Linux everything is working, until the first shutdown/cold start. We are going to try to use this and read pins manually.

1. Make sure you have shut your laptop down.
2. Turn it on, boot to Linux and confirm its not working
3. Read the values of gpio mask and data, something like this (make sure you are using correct card/device on your system)

$ sudo hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_MASK 0x0
nid = 0x1, verb = 0xf16, param = 0x0
value = 0x1

$ sudo hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DATA 0x0
nid = 0x1, verb = 0xf15, param = 0x0
value = 0x0
...

4. Write this values down and then reboot to Windows (make sure that fast startup/boot is turned ON).
5. Confirm everything is working in it and reboot to Linux.
6. Now everything in Linux should work, reread the values of pin's mask and data

$ sudo hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_MASK 0x0
...

7. Compare the values you got with the values you noted previously, they should differ.
8. Create a startup script that will set gpio mask and data with toggled vaules
9. ???
10. Profit

Step 8 is going to be pretty difficult. Setting new values can be tricky if we dont know what's the masking, but if you are lucky it should work.

That's all I got. Thanks.

Offline

Board footer

Powered by FluxBB