Messages in this thread |  | | From | Jonas Dreßler <> | Subject | [RFC PATCH 0/3] mwifiex: Add quirks for MS Surface devices | Date | Sat, 22 May 2021 15:18:24 +0200 |
| |
This series is based on the patches from Tsuchiya Yuto which have been submitted previously already, where it was suggested to cc linux-pci and Bjorn to ask if there's a better way of doing those quirks.
Original series sent in by Tsuchiya: https://lore.kernel.org/linux-wireless/20201028142753.18855-1-kitakar@gmail.com/
Here's the summary written by Tsuchiya:
This series adds firmware reset quirks for Microsoft Surface devices (PCIe-88W8897). Surface devices somehow requires quirks to reset the firmware. Otherwise, current mwifiex driver can reset only software level. This is not enough to recover from a bad state.
To do so, in the first patch, I added a DMI-based quirk implementation for Surface devices that use mwifiex chip.
The required quirk is different by generation. Surface gen3 devices (Surface 3 and Surface Pro 3) require a quirk that calls _DSM method (the third patch). Note that Surface Pro 3 is not yet supported because of the difference between Surface 3. On Surface 3, the wifi card will be immediately removed/reprobed after the _DSM call. On the other hand, Surface Pro 3 doesn't. Need to remove/reprobe wifi card ourselves. This behavior makes the support difficult.
Surface gen4+ devices (Surface Pro 4 and later) require a quirk that puts wifi into D3cold before FLR.
While here, created new files for quirks (mwifiex/pcie_quirks.c and mwifiex/pcie_quirks.h) because the changes are a little bit too big to add into pcie.c.
Jonas Dreßler (1): mwifiex: pcie: add DMI-based quirk implementation for Surface devices
Tsuchiya Yuto (2): mwifiex: pcie: add reset_d3cold quirk for Surface gen4+ devices mwifiex: pcie: add reset_wsid quirk for Surface 3
drivers/net/wireless/marvell/mwifiex/Makefile | 1 + drivers/net/wireless/marvell/mwifiex/pcie.c | 21 ++ drivers/net/wireless/marvell/mwifiex/pcie.h | 1 + .../wireless/marvell/mwifiex/pcie_quirks.c | 246 ++++++++++++++++++ .../wireless/marvell/mwifiex/pcie_quirks.h | 17 ++ 5 files changed, 286 insertions(+) create mode 100644 drivers/net/wireless/marvell/mwifiex/pcie_quirks.c create mode 100644 drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
-- 2.31.1
|  |