Hi everyone,

the following diff against -current has the PCI device IDs for the AX201 
wireless LAN and the Thunderbolt 3 bridge on the Lenovo Thinkpad X1 
Extreme Gen 3. I have this running without noticeable problems, and the 
QuZ firmware seems to work well with the iwx driver, although I guess it 
could be updated at some point. 

Maybe somebody would like to take a look at this diff?

Happy to provide pcidump and/or dmesg of this machine if anyone is 
interested. 

Remaining problems: PCH cAVS is detected but azalia driver does not 
attach, so no sound. Power management (fans on all the time, gets warm, 
battery life 2h whereas it is 10h on Linux kernel 5.11).

Does anyone else have this laptop as well?

best,
- ivo



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    13 Apr 2021 10:56:13 -0000
@@ -7711,6 +7711,8 @@ 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 +7753,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 +7941,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.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs.h,v
retrieving revision 1.1957
diff -u -p -r1.1957 pcidevs.h
--- pcidevs.h   9 Apr 2021 20:59:03 -0000       1.1957
+++ pcidevs.h   13 Apr 2021 10:56:14 -0000
@@ -3970,6 +3970,9 @@
#define PCI_PRODUCT_INTEL_JHL6340       0x15d9          /* JHL6340 Thunderbolt 
3 */
#define PCI_PRODUCT_INTEL_JHL6340_PCIE  0x15da          /* JHL6340 Thunderbolt 
3 */
#define PCI_PRODUCT_INTEL_JHL6340_XHCI  0x15db          /* JHL6340 Thunderbolt 
3 */
+#define        PCI_PRODUCT_INTEL_JHL7540_PCIE  0x15ea          /* JHL7540 
Thunderbolt 3 */
+#define        PCI_PRODUCT_INTEL_JHL7540_XHCI  0x15eb          /* JHL7540 
Thunderbolt 3 */
+#define        PCI_PRODUCT_INTEL_JHL7540_USB   0x15ec          /* JHL7540 
Thunderbolt 3 USB */
#define PCI_PRODUCT_INTEL_I219_LM8      0x15df          /* I219-LM */
#define PCI_PRODUCT_INTEL_I219_V8       0x15e0          /* I219-V */
#define PCI_PRODUCT_INTEL_I219_LM9      0x15e1          /* I219-LM */
@@ -5006,6 +5009,7 @@
#define PCI_PRODUCT_INTEL_495SERIES_LP_XDCI     0x34ee          /* 495 Series 
xDCI */
#define PCI_PRODUCT_INTEL_495SERIES_LP_SRAM     0x34ef          /* 495 Series 
Shared SRAM */
#define PCI_PRODUCT_INTEL_WL_22500_4    0x34f0          /* Wi-Fi 6 AX201 */
+#define        PCI_PRODUCT_INTEL_WL_22500_5    0x06f0          /* Wi-Fi 6 
AX201 */
#define PCI_PRODUCT_INTEL_495SERIES_LP_SDXC     0x34f8          /* 495 Series 
SDXC */
#define PCI_PRODUCT_INTEL_495SERIES_LP_GSPI_3   0x34fb          /* 495 Series 
GSPI */
#define PCI_PRODUCT_INTEL_495SERIES_LP_ISH      0x34fc          /* 495 Series 
ISH */
Index: pcidevs_data.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs_data.h,v
retrieving revision 1.1952
diff -u -p -r1.1952 pcidevs_data.h
--- pcidevs_data.h      9 Apr 2021 20:59:03 -0000       1.1952
+++ pcidevs_data.h      13 Apr 2021 10:56:15 -0000
@@ -13292,6 +13292,18 @@ static const struct pci_known_product pc
            "JHL6340 Thunderbolt 3",
        },
        {
+           PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_JHL7540_PCIE,
+           "JHL7540 Thunderbolt 3",
+       },
+       {
+           PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_JHL7540_XHCI,
+           "JHL7540 Thunderbolt 3",
+       },
+       {
+           PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_JHL7540_USB,
+           "JHL7540 Thunderbolt 3 USB Controller",
+       },
+       {
            PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I219_LM8,
            "I219-LM",
        },
@@ -17433,6 +17445,10 @@ static const struct pci_known_product pc
        },
        {
            PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_4,
+           "Wi-Fi 6 AX201",
+       },
+       {
+           PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_WL_22500_5,
            "Wi-Fi 6 AX201",
        },
        {


Reply via email to