thesofproject / linux

Linux kernel source tree
Other
90 stars 129 forks source link

Speakers Inverted - Razer Blade 15 (2022) #5078

Open alexknop opened 3 months ago

alexknop commented 3 months ago

Speakers are inverted on my laptop. When I test the front right and front left speakers in GNOME, the sound is coming out of the opposite speaker. I am not having this issue with headphones, only the built-in speakers.

$ sudo dmesg | grep -i sof
[sudo] password for alex: 
[    0.041378] software IO TLB: area num 32.
[    0.924201] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.977754] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.977754] software IO TLB: mapped [mem 0x000000002b68f000-0x000000002f68f000] (64MB)
[    1.353347] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[    1.353359] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
[   10.350469] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.462495] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.548779] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   10.548879] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.548900] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[   10.549069] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   10.623547] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.623604] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.623608] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   10.623646] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.623823] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   10.698860] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.698916] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.698920] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   10.698965] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.699135] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   10.704986] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.705041] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.705047] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   10.705099] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   10.705338] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   11.323728] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.323802] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.323809] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   11.323874] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.324103] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   11.477687] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.477839] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.477850] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   11.477956] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.478152] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   11.478897] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.479044] snd_soc_avs 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.479067] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   11.479142] sof-audio-pci-intel-tgl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   11.479318] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   11.485683] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   11.492305] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[   11.527544] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5
[   11.527559] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[   11.527561] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[   11.559441] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware paths/files for ipc type 0:
[   11.559444] sof-audio-pci-intel-tgl 0000:00:1f.3:  Firmware file:     intel/sof/sof-adl.ri
[   11.559445] sof-audio-pci-intel-tgl 0000:00:1f.3:  Topology file:     intel/sof-tplg/sof-hda-generic-2ch-pdm1.tplg
[   11.578056] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[   11.578059] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[   11.578064] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[   11.686574] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[   11.686578] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[   11.704177] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0
[   12.204649] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card3/input35
[   12.204809] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card3/input36
[   12.204993] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card3/input37
[   12.205198] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card3/input38
[   12.205375] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card3/input39
$ sudo inxi -Axx
Audio:
  Device-1: Intel Alder Lake PCH-P High Definition Audio vendor: Razer USA
    driver: sof-audio-pci-intel-tgl bus-ID: 00:1f.3 chip-ID: 8086:51c8
  Device-2: NVIDIA GA106 High Definition Audio vendor: Razer USA
    driver: snd_hda_intel v: kernel pcie: speed: 2.5 GT/s lanes: 8
    bus-ID: 01:00.1 chip-ID: 10de:228e
  API: ALSA v: k6.9.4-200.fc40.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.0.7 status: n/a (root, process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin

image

plbossart commented 3 months ago

@alexknop the SOF driver/firmware provides the same stream for both endpoints, the switch between headphone and speakers is handled inside the external HDaudio codec, so it wouldn't be surprised if this was a codec configuration issue.

The best way to test this theory is to add this kernel parameter in /etc/modprobe.d/alsa-base.conf

options snd-intel-dspcfg dsp_driver=1

Which will force the use of the snd-hda-intel driver. If you also see this channel inversion on the speakers, that's the verb configuration that's not correct for this device.

See https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html for next steps.

alexknop commented 3 months ago

Forcing the snd-hda-intel driver also resulted in the channel inversion

plbossart commented 3 months ago

there you go then, it's a codec configuration issue. The worst kind since we don't know what the settings should be.