Thanks a lot! I also got the sound working on this machine now. As far as I can tell, both speakers work and Dolby Atmos works, too, thanks to the awesome quirk by Joshua Stein (jcs@).
I’m not sure I did everything right here, though it works. Below is the diff. cheers, - ivo Index: azalia.c =================================================================== RCS file: /cvs/src/sys/dev/pci/azalia.c,v retrieving revision 1.259 diff -u -p -r1.259 azalia.c --- azalia.c 25 Oct 2020 07:22:06 -0000 1.259 +++ azalia.c 15 Apr 2021 13:18:07 -0000 @@ -490,7 +490,8 @@ azalia_configure_pci(azalia_t *az) const struct pci_matchid azalia_pci_devices[] = { { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_200SERIES_U_HDA }, - { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_300SERIES_U_HDA } + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_300SERIES_U_HDA }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_CAVS } }; int Index: azalia_codec.c =================================================================== RCS file: /cvs/src/sys/dev/pci/azalia_codec.c,v retrieving revision 1.183 diff -u -p -r1.183 azalia_codec.c --- azalia_codec.c 16 Jan 2021 07:02:39 -0000 1.183 +++ azalia_codec.c 15 Apr 2021 13:18:07 -0000 @@ -162,9 +162,16 @@ azalia_codec_init_vtbl(codec_t *this) break; case 0x10ec0285: this->name = "Realtek ALC285"; - if (this->subid == 0x229217aa) /* Thinkpad X1 Carbon 7 */ - this->qrks |= AZ_QRK_ROUTE_SPKR2_DAC | - AZ_QRK_WID_CLOSE_PCBEEP; + if (PCI_VENDOR(this->subid) == PCI_VENDOR_LENOVO) { + if (this->subid == 0x22c017aa) { /* Thinkpad X1 Extreme 3 */ + this->name = "Realtek ALC3286"; + this->qrks |= AZ_QRK_DOLBY_ATMOS | + AZ_QRK_ROUTE_SPKR2_DAC; + } + else if (this->subid == 0x229217aa) /* Thinkpad X1 Carbon 7 */ + this->qrks |= AZ_QRK_ROUTE_SPKR2_DAC | + AZ_QRK_WID_CLOSE_PCBEEP; + } break; case 0x10ec0287: this->name = "Realtek ALC287"; > On Apr 14, 2021, at 20:39, Stefan Sperling <s...@stsp.name> wrote: > > On Wed, Apr 14, 2021 at 11:01:47AM +0200, Ivo Sbalzarini wrote: >> as suggested over at misc@ (thanks, Stuart!), I am sending a >> patch below to add the PCI IDs of the Thunderbolt and WiFi >> devices in Lenovo Thinkpad X1 Extreme Gen 3 laptops, and to >> enable the Intel AX201 wireless LAN in the iwx driver. >> >> I have this tested and running without apparent problems on >> my machine. Would appreciate if someone could take a look at >> the diffs. >> >> Thanks! >> - ivo > > Committed, thank you! > >> >> >> >> >> Index: if_iwx.c >> =================================================================== >> RCS file: /cvs/src/sys/dev/pci/if_iwx.c,v >> retrieving revision 1.50 >> diff -u -p -r1.50 if_iwx.c >> --- if_iwx.c 17 Mar 2021 15:59:27 -0000 1.50 >> +++ if_iwx.c 14 Apr 2021 06:51:35 -0000 >> @@ -7711,6 +7711,7 @@ static const struct pci_matchid iwx_devi >> { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_2 }, >> { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_3 }, >> { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_4,}, >> + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_5,}, >> }; >> >> static const struct pci_matchid iwx_subsystem_id_ax201[] = { >> @@ -7751,6 +7752,7 @@ iwx_match(struct device *parent, iwx_mat >> case PCI_PRODUCT_INTEL_WL_22500_2: /* AX201 */ >> case PCI_PRODUCT_INTEL_WL_22500_3: /* AX201 */ >> case PCI_PRODUCT_INTEL_WL_22500_4: /* AX201 */ >> + case PCI_PRODUCT_INTEL_WL_22500_5: /* AX201 */ >> for (i = 0; i < nitems(iwx_subsystem_id_ax201); i++) { >> if (svid == iwx_subsystem_id_ax201[i].pm_vid && >> spid == iwx_subsystem_id_ax201[i].pm_pid) >> @@ -7938,6 +7940,7 @@ iwx_attach(struct device *parent, struct >> break; >> case PCI_PRODUCT_INTEL_WL_22500_2: >> case PCI_PRODUCT_INTEL_WL_22500_3: >> + case PCI_PRODUCT_INTEL_WL_22500_5: >> if (sc->sc_hw_rev != IWX_CSR_HW_REV_TYPE_QUZ) { >> printf("%s: unsupported AX201 adapter\n", DEVNAME(sc)); >> return; >> Index: pcidevs >> =================================================================== >> RCS file: /cvs/src/sys/dev/pci/pcidevs,v >> retrieving revision 1.1963 >> diff -u -p -r1.1963 pcidevs >> --- pcidevs 9 Apr 2021 20:58:20 -0000 1.1963 >> +++ pcidevs 14 Apr 2021 06:51:36 -0000 >> @@ -3965,6 +3965,9 @@ product INTEL I219_V4 0x15d8 I219-V >> product INTEL JHL6340 0x15d9 JHL6340 Thunderbolt 3 >> product INTEL JHL6340_PCIE 0x15da JHL6340 Thunderbolt 3 >> product INTEL JHL6340_XHCI 0x15db JHL6340 Thunderbolt 3 >> +product INTEL JHL7540 0x15eb JHL7540 Thunderbolt 3 >> +product INTEL JHL7540_PCIE 0x15ea JHL7540 Thunderbolt 3 >> +product INTEL JHL7540_XHCI 0x15ec JHL7540 Thunderbolt 3 >> product INTEL I219_LM8 0x15df I219-LM >> product INTEL I219_V8 0x15e0 I219-V >> product INTEL I219_LM9 0x15e1 I219-LM >> @@ -5001,6 +5004,7 @@ product INTEL 495SERIES_LP_XHCI 0x34ed 4 >> product INTEL 495SERIES_LP_XDCI 0x34ee 495 Series xDCI >> product INTEL 495SERIES_LP_SRAM 0x34ef 495 Series Shared SRAM >> product INTEL WL_22500_4 0x34f0 Wi-Fi 6 AX201 >> +product INTEL WL_22500_5 0x06f0 Wi-Fi 6 AX201 >> product INTEL 495SERIES_LP_SDXC 0x34f8 495 Series SDXC >> product INTEL 495SERIES_LP_GSPI_3 0x34fb 495 Series GSPI >> product INTEL 495SERIES_LP_ISH 0x34fc 495 Series ISH >> >> >>