Hi,

i've been having iwm(4) instability on a X1 Gen3 issues since july
(symptom/reproducer: unable to fetch base70.tgz, stalls after 100Mb and link
goes down, ifconfig up/down/reassoc 'resolves' it - pkg_add -u also fails after
a while, erratic ping, etc..) - tried forcing 2Ghz/5Ghz modes but that doesnt
help on this laptop (forcing 5Ghz 'solves' a similar issue on a T470s but
i dont remember the hw rev/model right now).

iwm0 at pci2 dev 0 function 0 "Intel AC 7265" rev 0x59, msi
iwm0: hw rev 0x210, fw ver 17.3216344376.0

bisected kernels and found out that
6.9-current (GENERIC.MP) #120: Thu Jul  8 23:45:06 MDT 2021
was okay and
6.9-current (GENERIC.MP) #122: Fri Jul  9 16:29:05 MDT 2021
wasnt, which narrowed the regression around the switch to newer firmware
version 29. (eg
https://github.com/openbsd/src/commit/6a5f473d46d947cc596b5dbde0c8b074f6a98723)
- on july 20 there's been
https://github.com/openbsd/src/commit/b57370d64c440d7c4d5594a677fb066e3786fbfc
too.

so iwm-7265D-29 firmware doesnt work on this revision of hardware on
this laptop (mpi@ has been seeing the same issues on a similar X1 gen3)
but forcing the use of the older firmware 'solves' it. As stsp@ told me,
the same hardware revision works in another laptop with the newer
firmware...

anyway, the diff below from stsp@ gives me a working iwm(4) on -current:

Index: dev/pci/if_iwm.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v
retrieving revision 1.370
diff -u -r1.370 if_iwm.c
--- dev/pci/if_iwm.c    2 Oct 2021 07:47:54 -0000       1.370
+++ dev/pci/if_iwm.c    3 Oct 2021 07:20:32 -0000
@@ -11085,11 +11085,7 @@
                break;
        case PCI_PRODUCT_INTEL_WL_7265_1:
        case PCI_PRODUCT_INTEL_WL_7265_2:
-               if ((sc->sc_hw_rev & IWM_CSR_HW_REV_TYPE_MSK) ==
-                   IWM_CSR_HW_REV_TYPE_7265D)
-                       sc->sc_fwname = "iwm-7265D-29";
-               else
-                       sc->sc_fwname = "iwm-7265-17";
+               sc->sc_fwname = "iwm-7265-17";
                sc->host_interrupt_operation_mode = 0;
                sc->sc_device_family = IWM_DEVICE_FAMILY_7000;
                sc->sc_fwdmasegsz = IWM_FWDMASEGSZ;

Reply via email to