Comment 803 for bug 1958019

Revision history for this message
In , andrewdubya (andrewdubya-linux-kernel-bugs) wrote :

Is there some way I can help to get Realtek/tas working for the Lenovo Slim Pro 9i (named Yoga Slim 9i outside of the US)?

On my Manjaro install, the top speakers work (although I don't think they're amplified?) and the bottom subwoofers are off.

I've managed to get qemu working for sniffing following this guide:
https://github.com/ryanprescott/realtek-verb-tools/wiki/How-to-sniff-verbs-from-a-Windows-sound-driver

At one point, Win10 in qemu had sound working similar to Linux (only top-firing, maybe unamplified), and I saw event logs, but I don't remember the driver. I might need to do a clean install at this point.

When I try to install the driver in qemu in win10 or win11, I get a bluescreen. Windows is using Realtek Semi Corp ver 6.0.9553.1.

uname:
Linux andrew-slim 6.6.2-1-MANJARO #1 SMP PREEMPT_DYNAMIC Mon Nov 20 13:00:47 UTC 2023 x86_64 GNU/Linux

lspci shows:
00:1f.3 Multimedia audio controller: Intel Corporation Device 51cf (rev 01)
        Subsystem: Lenovo Device 3802
        Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 16
        IOMMU group: 16
        Region 0: Memory at 6203190000 (64-bit, non-prefetchable) [size=16K]
        Region 4: Memory at 6203000000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
                Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
        Capabilities: [80] Vendor Specific Information: Len=14 <?>
        Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000 Data: 0000
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel, snd_sof_pci_intel_tg

From lsmod:
snd_soc_tas2781_fmwlib 53248 1 snd_hda_scodec_tas2781_i2c
snd_soc_tas2781_comlib 24576 2 snd_soc_tas2781_fmwlib,snd_hda_scodec_tas2781_i2c

From dmesg (1f.3 is the device, I think):
[ 0.709119] pci 0000:00:1f.0: [8086:519f] type 00 class 0x060100
[ 0.709450] pci 0000:00:1f.3: [8086:51cf] type 00 class 0x040100
[ 0.709492] pci 0000:00:1f.3: reg 0x10: [mem 0x6203190000-0x6203193fff 64bit]
[ 0.709546] pci 0000:00:1f.3: reg 0x20: [mem 0x6203000000-0x62030fffff 64bit]
[ 0.709651] pci 0000:00:1f.3: PME# supported from D3hot D3cold
[ 0.709735] pci 0000:00:1f.4: [8086:51a3] type 00 class 0x0c0500
[ 0.709756] pci 0000:00:1f.4: reg 0x10: [mem 0x620319c000-0x620319c0ff 64bit]
[ 0.709778] pci 0000:00:1f.4: reg 0x20: [io 0xefa0-0xefbf]
[ 0.710013] pci 0000:00:1f.5: [8086:51a4] type 00 class 0x0c8000
[ 0.710035] pci 0000:00:1f.5: reg 0x10: [mem 0xfe010000-0xfe010fff]

I have a separate grub entry to boot without sound (for qemu sniffing) using these flags: modprobe.blacklist=snd_hda_intel,snd_sof_pci_intel_tgl pci-stub.ids=8086:51cf iommu=pt intel_iommu=on

I'm not sure if that's enough. Happy to help in any way!