[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201028142753.18855-1-kitakar@gmail.com>
Date: Wed, 28 Oct 2020 23:27:50 +0900
From: Tsuchiya Yuto <kitakar@...il.com>
To: Amitkumar Karwar <amitkarwar@...il.com>,
Ganapathi Bhat <ganapathi.bhat@....com>,
Xinming Hu <huxinming820@...il.com>,
Kalle Valo <kvalo@...eaurora.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>
Cc: linux-wireless@...r.kernel.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org,
Maximilian Luz <luzmaximilian@...il.com>,
Andy Shevchenko <andriy.shevchenko@...el.com>, verdre@...d.nl,
Tsuchiya Yuto <kitakar@...il.com>
Subject: [RFC PATCH 0/3] mwifiex: add fw reset quirks for Microsoft Surface
Hello all,
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.
Thanks,
Tsuchiya Yuto
Tsuchiya Yuto (3):
mwifiex: pcie: add DMI-based quirk impl for Surface devices
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 | 2 +
.../wireless/marvell/mwifiex/pcie_quirks.c | 246 ++++++++++++++++++
.../wireless/marvell/mwifiex/pcie_quirks.h | 17 ++
5 files changed, 287 insertions(+)
create mode 100644 drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
create mode 100644 drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
--
2.29.1
Powered by blists - more mailing lists