Tuesday, April 13, 2021

Lenovo Thinkpad X1 Extreme Gen 3 patch

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 anyonw 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",
},
{

No comments:

Post a Comment