Jerome Pouiller [off-list ref] writes:
From: Jérôme Pouiller <jerome.pouiller@silabs.com>
Hello,
I think the wfx driver is now mature enough to be accepted in the
drivers/net/wireless directory.
The firmware is now a part of the linux-firmware repository since relase
20210315[1]. It had taken a bit of time because I have worked with the legal
department to simplify the redistribution terms of the firmware.
[1]: https://lore.kernel.org/linux-firmware/2833354.gXvVfaC4I7@pc-42/ (local)
As requested by Kalle[2], I send one file per patch. At the end, all the
patches (or at least the patches 3 to 24) will be squashed (therefore, I
didn't bother to write real commit messages).
[2]: https://lore.kernel.org/lkml/87ft6p2n0h.fsf@codeaurora.org/ (local)
Here is a diagram of the global architecture that may help to understand
the code:
,------------------------------------.
| mac80211 |
`------------------------------------'
,------------+-----------+-----------.
| sta | | |
| scan | | |
| main | | |
+------------+ data_tx | |
| key | | data_rx |
| hif_tx_mib | queue | |
| hif_tx | | |
| hif_rx | | |
| hif_api_* | | |
+------------+-----------+-----------+--------.
| bh | fwio |
+------------------------------------+--------+
| hwio |
+---------------------------------------------+
| bus_sdio |
| bus_spi |
`---------------------------------------------'
,---------------------------------------------.
| spi / sdio |
`---------------------------------------------'
Roughly, I have sent the files from the bottom to the top.
v8:
- Change the way the DT is handled. The user can now specify the name of
the board (= chip + antenna) he use. It easier for board designers to
add new entries. I plan to send a PR to linux-firmware to include PDS
files of the developpement boards belong the firmware (I also plan to
relocate these file into wfx/ instead of silabs/). (Kalle, Pali)
- Prefix visible functions and structs with "wfx_". I mostly kept the
code under 80 columns. (Kalle, Pali, Greg)
- Remove support for force_ps_timeout for now. (Kalle)
- Fix licenses of Makefile, Kconfig and hif_api*.h. (Kalle)
- Do not mix and match endianess in struct hif_ind_startup. (Kalle)
- Remove magic values. (Kalle)
- Use IS_ALIGNED(). (BTW, PTR_IS_ALIGNED() does not exist?) (Kalle)
- I have also noticed that some headers files did not declare all the
struct they used.
These issues remain (I hope they are not blockers):
- I have currently no ideas how to improve/simplify the parsing PDS file.
(Kalle)
For the PDS file problem it would help if you could actually describe
what the firmware requires/needs and then we can start from that. I had
some questions about this in v7 but apparently you missed those.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches