Re: [EXT] [RFC PATCH 0/4] mwifiex: add support for iw61x

Sascha Hauer
2024-09-02T13:11:34Z

On Mon, Sep 02, 2024 at 08:00:58AM +0000, David Lin wrote:
> > From: Sascha Hauer <s.hauer@pengutronix.de>
> > Sent: Monday, September 2, 2024 3:46 PM
> > To: David Lin <yu-hao.lin@nxp.com>
> > Cc: Francesco Dolcini <francesco@dolcini.it>; Calvin Owens
> > <calvin@wbinvd.org>; Brian Norris <briannorris@chromium.org>; Kalle Valo
> > <kvalo@kernel.org>; linux-wireless@vger.kernel.org;
> > linux-kernel@vger.kernel.org; kernel@pengutronix.de
> > Subject: Re: [EXT] [RFC PATCH 0/4] mwifiex: add support for iw61x
> >
> > Caution: This is an external email. Please take care when clicking links or
> > opening attachments. When in doubt, report the message using the 'Report
> > this email' button
> >
> >
> > On Mon, Sep 02, 2024 at 06:54:07AM +0000, David Lin wrote:
> > > > From: Sascha Hauer <s.hauer@pengutronix.de>
> > > > Sent: Monday, September 2, 2024 2:41 PM
> > > > To: David Lin <yu-hao.lin@nxp.com>
> > > > Cc: Francesco Dolcini <francesco@dolcini.it>; Calvin Owens
> > > > <calvin@wbinvd.org>; Brian Norris <briannorris@chromium.org>; Kalle
> > > > Valo <kvalo@kernel.org>; linux-wireless@vger.kernel.org;
> > > > linux-kernel@vger.kernel.org; kernel@pengutronix.de
> > > > Subject: Re: [EXT] [RFC PATCH 0/4] mwifiex: add support for iw61x
> > > >
> > > > Caution: This is an external email. Please take care when clicking
> > > > links or opening attachments. When in doubt, report the message
> > > > using the 'Report this email' button
> > > >
> > > >
> > > > On Mon, Sep 02, 2024 at 02:24:53AM +0000, David Lin wrote:
> > > > > > From: Sascha Hauer <s.hauer@pengutronix.de>
> > > > > > Sent: Monday, August 26, 2024 3:27 PM
> > > > > > To: Francesco Dolcini <francesco@dolcini.it>
> > > > > > Cc: Calvin Owens <calvin@wbinvd.org>; Brian Norris
> > > > > > <briannorris@chromium.org>; Kalle Valo <kvalo@kernel.org>; David
> > > > > > Lin <yu-hao.lin@nxp.com>; linux-wireless@vger.kernel.org;
> > > > > > linux-kernel@vger.kernel.org; kernel@pengutronix.de; Sascha
> > > > > > Hauer <s.hauer@pengutronix.de>
> > > > > > Subject: [EXT] [RFC PATCH 0/4] mwifiex: add support for iw61x
> > > > > >
> > > > > > Caution: This is an external email. Please take care when
> > > > > > clicking links or opening attachments. When in doubt, report the
> > > > > > message using the 'Report this email' button
> > > > > >
> > > > > >
> > > > > > This series adds support for the iw61x chips to the mwifiex driver.
> > > > > > There are a few things to address, hence the RFC status. See the
> > > > > > commit messages for details. The series is based on
> > wireless-next/main.
> > > > > >
> > > > > > I am sending this now since people requested it here [1], but as
> > > > > > it's out now feel free to leave your comments to the issues
> > > > > > mentioned (or others I haven't mentioned ;)
> > > > > >
> > > > > > [1]
> > > > > > https://lo/
> > > > > >
> > > >
> > re.kern%2F&data=05%7C02%7Cyu-hao.lin%40nxp.com%7C6125c51da3704fe10
> > > > a5
> > > > > >
> > > >
> > a08dccb1a24ef%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6386
> > > > 08560
> > > > > >
> > > >
> > 383160951%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
> > > > 2luMz
> > > > > >
> > > >
> > IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=jfQ6FQimPpwr
> > > > nwUo
> > > > > > OCEhmpSadtrb15ymGiif%2B1UCdG0%3D&reserved=0
> > > > > >
> > > >
> > el.org%2Fall%2F20240809094533.1660-1-yu-hao.lin%40nxp.com%2F&data=05
> > > > > >
> > > >
> > %7C02%7Cyu-hao.lin%40nxp.com%7C184ab4fed58647150f8508dcc5a0789a%7
> > > > > >
> > > >
> > C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C638602540229716119%
> > > > > >
> > > >
> > 7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJB
> > > > > >
> > > >
> > TiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=cACBHxaQvcOqu6ri
> > > > > > BoAlZDONRlGQ4j5DcglEV9T%2BpYU%3D&reserved=0
> > > > > >
> > > > > > Sascha
> > > > > >
> > > > > >
> > > > > > Sascha Hauer (4):
> > > > > > wifi: mwifiex: release firmware at remove time
> > > > > > wifi: mwifiex: handle VDLL
> > > > > > wifi: mwifiex: wait longer for SDIO card status
> > > > > > mwifiex: add iw61x support
> > > > > >
> > > > > > drivers/net/wireless/marvell/mwifiex/cmdevt.c | 86
> > > > +++++++++++++++++++
> > > > > > drivers/net/wireless/marvell/mwifiex/fw.h | 16 ++++
> > > > > > drivers/net/wireless/marvell/mwifiex/main.c | 9 +-
> > > > > > drivers/net/wireless/marvell/mwifiex/main.h | 4 +
> > > > > > drivers/net/wireless/marvell/mwifiex/sdio.c | 81
> > ++++++++++++++++-
> > > > > > drivers/net/wireless/marvell/mwifiex/sdio.h | 3 +
> > > > > > .../net/wireless/marvell/mwifiex/sta_event.c | 4
> > > > > > + .../net/wireless/marvell/mwifiex/uap_event.c | 4 +
> > > > > > include/linux/mmc/sdio_ids.h | 3 +
> > > > > > 9 files changed, 205 insertions(+), 5 deletions(-)
> > > > > >
> > > > > > --
> > > > > > 2.39.2
> > > > >
> > > > > I think you ported VDLL related code from nxpwifi and you also
> > > > > traced our private/downstream MXM driver.
> > > >
> > > > I ported it from this repository:
> > > >
> > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
> > > >
> > thub.co%2F&data=05%7C02%7Cyu-hao.lin%40nxp.com%7C9f55bf357ece47645
> > 0b
> > > >
> > 708dccb234dae%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6386
> > 08599
> > > >
> > 700151625%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
> > 2luMz
> > > >
> > IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=OLf3OfFX7R%
> > 2BT3V
> > > > gWtcsqlls%2FI3ceY8r3bewwYy8bAes%3D&reserved=0
> > > >
> > m%2Fnxp-imx%2Fmwifiex-iw612.git&data=05%7C02%7Cyu-hao.lin%40nxp.co
> > > >
> > m%7C6125c51da3704fe10a5a08dccb1a24ef%7C686ea1d3bc2b4c6fa92cd99c5
> > > >
> > c301635%7C0%7C0%7C638608560383172495%7CUnknown%7CTWFpbGZsb3d
> > > >
> > 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3
> > > >
> > D%7C0%7C%7C%7C&sdata=5TgI0r4u2I9Pi1FATJx32Ubn7ufmbYsBR1XkpQLAIyQ
> > > > %3D&reserved=0
> > > >
> > > > Is that the one you are referring to as MXM driver?
> > > >
> > >
> > > Yes.
> > >
> > > > > If this is the case, I think you should know nxpwifi already
> > > > > cleaned up the porting VDLL code from MXM driver.
> > > > > I check your patch quickly. You ported the new SDIO data type
> > > > > (MWIFIEX_TYPE_VDLL) from nxpwifi, but you did not port the code to
> > > > > support this new data type from nxpwifi. In other word, you did
> > > > > not test your patch before submission (same as some of your patches).
> > > >
> > > > I did test it. It works with the iw61x as well as older chips. There
> > > > are likely details I haven't tested, but it generally works. If
> > > > there are details I should test additionally please let me know.
> > > >
> > > > >
> > > > > Another thing is that this new SDIO data type should be handled
> > > > > carefully with other existed SDIO data type.
> > > > >
> > > > > Nxpwifi only supports new SDIO mode, so the modification to
> > > > > support NXPWIFI_TYPE_VDLL can be clean and simple. If you want to
> > > > > port the code to Mwifiex, there is no one-to-one modification of the
> > code.
> > > > >
> > > > > Another important thing is that you should consider if your
> > > > > modifications will affect existed devices or not.
> > > > > You need to check if you should check firmware version or chip
> > > > > type before adding some code.
> > > >
> > > > The VDLL code I added for the iw61x only reacts to the
> > > > EVENT_VDLL_IND event. So as long as a firmware doesn't send such an
> > > > event nothing is changed with this patch, and I haven't seen an older chip
> > sending a VDLL event.
> > > >
> > >
> > > How about IW61x? As I mentioned before, if you test IW61x on DFS
> > > channel, command timeout will happen. Without correct VDLL porting,
> > > you will encounter command timeout in some other test cases. But
> > > testing on DFS channel will be easier to reproduce the issue.
> >
> > The VDLL support in the downstream driver supports a case when a VDLL
> > event comes in while a command is being sent. I catched this with this
> > test:
> >
> > if (adapter->cmd_sent) {
> > mwifiex_dbg(adapter, MSG, "%s: adapter is busy\n",
> > __func__);
> > return -EBUSY;
> > }
> >
> > The downstream driver defers handling of the VDLL event to the main process
> > in this case. I haven't implemented this case in my patch because I wasn't able
> > to trigger it, but is this the case you are referring to?
> >
>
> Not only this code segment. In fact, you did not add VDLL data patch support to sdio.c.
> If you try to add the code and do test, you will know what is missing in your code.

Could you point me to the code you mean?

Sascha

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |