Also, just in case anyone at NXP is still following this thread, for the sake of completeness here's a list of all the firmware bugs we've discovered when investigating this wifi card: - Firmware can crash after setting TX ring write pointer while ASPM L1 or L1 substate is active (exact substate is platform dependent). Workaround "mwifiex: Read a PCI register after writing the TX ring write pointer" - Firmware sometimes doesn't wake up and send an interrupt after reading/writing a PCI register. Workaround "mwifiex: Try waking the firmware until we get an interrupt" - Firmware doesn't properly implement PCIe LTR (appears to send a single report during fw startup), making the system unable to enter deeper powersaving states. Workaround "mwifiex: Add quirk resetting the PCI bridge on MS Surface devices" - On hardware revision 20 the card randomly wakes up from deep sleep, most likely a hardware bug, the firmware should work around that. Workaround "mwifiex: Add quirk to disable deep sleep with certain hardware revision" - BTCOEX events from firmware are not sent consistently when BT gets active/inactive and we end up throttling wifi speeds for no reason. Workaround "Ignore BTCOEX events from the firmware" - Firmwares BT LE active and passive scan feature is ignoring the "Filter duplicates" property, leading to tons of USB interrupts from the card, preventing the system from powersaving. No workaround except not pairing any LE devices or disabling BT LE.