After a kernel update my wifi's started misbehaving after suspend. Observed behavior is on resume it'll either fail to connect, or connect with extremely high packet loss - pings will typically get through for two or three seconds at a time, followed by about thirty seconds of dead time. dmesg has a bunch of messages to the tune of [ 66.620028] iwlwifi 0000:00:14.3: Queue 5 is stuck 0 14 [ 66.620050] iwlwifi 0000:00:14.3: Queue 4 is stuck 0 4 [ 66.620260] iwlwifi 0000:00:14.3: Microcode SW error detected. Restarting 0x0. [ 66.620328] iwlwifi 0000:00:14.3: Start IWL Error Log Dump: [ 66.620329] iwlwifi 0000:00:14.3: Transport status: 0x0000004A, valid: 6 [ 66.620330] iwlwifi 0000:00:14.3: Loaded firmware version: 77.f92b5fed.0 QuZ-a0-hr-b0-77.ucode [ 66.620331] iwlwifi 0000:00:14.3: 0x00000084 | NMI_INTERRUPT_UNKNOWN [ 66.620332] iwlwifi 0000:00:14.3: 0x0000A2F0 | trm_hw_status0 [ 66.620333] iwlwifi 0000:00:14.3: 0x00000000 | trm_hw_status1 [ 66.620334] iwlwifi 0000:00:14.3: 0x004C8FAA | branchlink2 [ 66.620335] iwlwifi 0000:00:14.3: 0x004BEF5E | interruptlink1 [ 66.620336] iwlwifi 0000:00:14.3: 0x004BEF5E | interruptlink2 [ 66.620336] iwlwifi 0000:00:14.3: 0x0001523A | data1 [ 66.620337] iwlwifi 0000:00:14.3: 0x01000000 | data2 [ 66.620338] iwlwifi 0000:00:14.3: 0x00000000 | data3 [ 66.620338] iwlwifi 0000:00:14.3: 0x18810674 | beacon time [ 66.620339] iwlwifi 0000:00:14.3: 0xB2452997 | tsf low [ 66.620340] iwlwifi 0000:00:14.3: 0x00000923 | tsf hi [ 66.620341] iwlwifi 0000:00:14.3: 0x00000000 | time gp1 [ 66.620341] iwlwifi 0000:00:14.3: 0x00D955C0 | time gp2 [ 66.620342] iwlwifi 0000:00:14.3: 0x00000001 | uCode revision type [ 66.620343] iwlwifi 0000:00:14.3: 0x0000004D | uCode version major [ 66.620343] iwlwifi 0000:00:14.3: 0xF92B5FED | uCode version minor [ 66.620344] iwlwifi 0000:00:14.3: 0x00000351 | hw version [ 66.620345] iwlwifi 0000:00:14.3: 0x00C89001 | board version [ 66.620345] iwlwifi 0000:00:14.3: 0x8052FD4F | hcmd [ 66.620346] iwlwifi 0000:00:14.3: 0x20028000 | isr0 [ 66.620347] iwlwifi 0000:00:14.3: 0x00000000 | isr1 [ 66.620347] iwlwifi 0000:00:14.3: 0x08F00002 | isr2 [ 66.620348] iwlwifi 0000:00:14.3: 0x00C3028C | isr3 [ 66.620349] iwlwifi 0000:00:14.3: 0x00000000 | isr4 [ 66.620349] iwlwifi 0000:00:14.3: 0x00760103 | last cmd Id [ 66.620350] iwlwifi 0000:00:14.3: 0x0001523A | wait_event [ 66.620351] iwlwifi 0000:00:14.3: 0x000000D4 | l2p_control [ 66.620351] iwlwifi 0000:00:14.3: 0x00000000 | l2p_duration [ 66.620352] iwlwifi 0000:00:14.3: 0x00000007 | l2p_mhvalid [ 66.620353] iwlwifi 0000:00:14.3: 0x00000000 | l2p_addr_match [ 66.620353] iwlwifi 0000:00:14.3: 0x00000009 | lmpm_pmg_sel [ 66.620354] iwlwifi 0000:00:14.3: 0x00000000 | timestamp [ 66.620355] iwlwifi 0000:00:14.3: 0x0000D848 | flow_handler [ 66.620386] iwlwifi 0000:00:14.3: Start IWL Error Log Dump: [ 66.620387] iwlwifi 0000:00:14.3: Transport status: 0x0000004A, valid: 7 [ 66.620388] iwlwifi 0000:00:14.3: 0x20000066 | NMI_INTERRUPT_HOST [ 66.620388] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink1 [ 66.620389] iwlwifi 0000:00:14.3: 0x8045613A | umac branchlink2 [ 66.620390] iwlwifi 0000:00:14.3: 0x8047301E | umac interruptlink1 [ 66.620390] iwlwifi 0000:00:14.3: 0x8047301E | umac interruptlink2 [ 66.620391] iwlwifi 0000:00:14.3: 0x01000000 | umac data1 [ 66.620392] iwlwifi 0000:00:14.3: 0x8047301E | umac data2 [ 66.620392] iwlwifi 0000:00:14.3: 0x00000000 | umac data3 [ 66.620393] iwlwifi 0000:00:14.3: 0x0000004D | umac major [ 66.620394] iwlwifi 0000:00:14.3: 0xF92B5FED | umac minor [ 66.620394] iwlwifi 0000:00:14.3: 0x00D955BE | frame pointer [ 66.620395] iwlwifi 0000:00:14.3: 0xC0886260 | stack pointer [ 66.620396] iwlwifi 0000:00:14.3: 0x0083010C | last host cmd [ 66.620396] iwlwifi 0000:00:14.3: 0x00000000 | isr status reg [ 66.620419] iwlwifi 0000:00:14.3: IML/ROM dump: [ 66.620420] iwlwifi 0000:00:14.3: 0x00000003 | IML/ROM error/state [ 66.620426] iwlwifi 0000:00:14.3: 0x0000570D | IML/ROM data1 [ 66.620433] iwlwifi 0000:00:14.3: 0x00000080 | IML/ROM WFPM_AUTH_KEY_0 [ 66.620438] iwlwifi 0000:00:14.3: Fseq Registers: [ 66.620440] iwlwifi 0000:00:14.3: 0x60000000 | FSEQ_ERROR_CODE [ 66.620442] iwlwifi 0000:00:14.3: 0x80290033 | FSEQ_TOP_INIT_VERSION [ 66.620444] iwlwifi 0000:00:14.3: 0x00090006 | FSEQ_CNVIO_INIT_VERSION [ 66.620446] iwlwifi 0000:00:14.3: 0x0000A482 | FSEQ_OTP_VERSION [ 66.620449] iwlwifi 0000:00:14.3: 0x00000003 | FSEQ_TOP_CONTENT_VERSION [ 66.620451] iwlwifi 0000:00:14.3: 0x4552414E | FSEQ_ALIVE_TOKEN [ 66.620453] iwlwifi 0000:00:14.3: 0x20000302 | FSEQ_CNVI_ID [ 66.620455] iwlwifi 0000:00:14.3: 0x01300504 | FSEQ_CNVR_ID [ 66.620457] iwlwifi 0000:00:14.3: 0x20000302 | CNVI_AUX_MISC_CHIP [ 66.620461] iwlwifi 0000:00:14.3: 0x01300504 | CNVR_AUX_MISC_CHIP [ 66.620465] iwlwifi 0000:00:14.3: 0x05B0905B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM [ 66.620470] iwlwifi 0000:00:14.3: 0x0000025B | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR [ 66.620472] iwlwifi 0000:00:14.3: 0x00090006 | FSEQ_PREV_CNVIO_INIT_VERSION [ 66.620474] iwlwifi 0000:00:14.3: 0x00290033 | FSEQ_WIFI_FSEQ_VERSION [ 66.620476] iwlwifi 0000:00:14.3: 0x00290033 | FSEQ_BT_FSEQ_VERSION [ 66.620478] iwlwifi 0000:00:14.3: 0x000000DC | FSEQ_CLASS_TP_VERSION [ 66.620485] iwlwifi 0000:00:14.3: UMAC CURRENT PC: 0x80472b34 [ 66.620487] iwlwifi 0000:00:14.3: LMAC1 CURRENT PC: 0xd0 [ 66.620566] iwlwifi 0000:00:14.3: WRT: Collecting data: ini trigger 4 fired (delay=0ms). [ 66.620570] ieee80211 phy0: Hardware restart was requested repeated every ten seconds or so. I bisected the bug down to 597568e8df04, which turns out to be a change to the rtsx driver's power management. On my system that's the SD card reader driver. After blacklisting the relevant modules (rtsx_pci and rtsx_pci_sdmmc), the wifi actually fails from boot, with the above error showing up immediately. Without rtsx blacklisted the bug's present from that commit up through master. With the reader blacklisted the bug's present on every kernel I tested, back to 5.4. On newer kernels, plugging in an SD card also causes wifi to drop. On 5.15 wifi survives the SD card's presence. My suspicion of what's going on is that the wifi card's power management isn't being handled correctly, but that's being masked somehow by the sd card driver. When the sd driver's power management code changed, or when the driver's blacklisted, the wifi card's left without that and fails. The hardware here's a Dell XPS 15 9500, with a "Killer AX1650" card - the driver reports it as [ 3.086156] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX203, REV=0x354 To repro: boot, suspend, resume and try and connect to wifi. Or blacklist rsx_pci and rtsx_pci_sdmmc, no suspend required. Thanks for any help, and let me know if you need any more info. -- Rob