[PATCH v2 00/55] Improve wfx driver
From: JÃrÃme Pouiller
Date: Tue Dec 17 2019 - 11:14:32 EST
From: JÃrÃme Pouiller <jerome.pouiller@xxxxxxxxxx>
Hello all,
This pull request continue to clean up the wfx driver. It can be more or
less divided in four parts:
- 0001 to 0009 fix some issues (should be included in 5.5?)
- 0010 to 0028 mostly contains cosmetics changes
- 0029 to 0043 re-work power save (in station mode) and QoS
- 0044 to 0054 re-work the scan process
The last patch updates the TODO with a more precise list. I included
references to discussions I have had on mailing lists, in order to not
forget them. I started the first items of the list and I hope to be able
to send another (smaller) pull request in 2-3 weeks.
This series also try clarify the overall architecture:
,------------------------------------.
| mac80211 |
`------------------------------------'
,------------+-----------+-----------.
| sta | | |
| scan | | |
| main | | |
+------------+ data_tx | |
| key | | data_rx |
| hif_tx_mib | queue | |
| hif_tx | | |
| hif_rx | | |
| hif_api_* | | |
+------------+-----------+-----------+--------.
| bh | fwio |
| secure_link | |
+------------------------------------+--------+
| hwio |
+---------------------------------------------+
| bus_sdio |
| bus_spi |
| hwbus |
`---------------------------------------------'
,---------------------------------------------.
| sdio/spi |
+---------------------------------------------+
| hardware |
`---------------------------------------------'
It try to make a clear separation between functions that take care of
hardware communication (hif_*) and functions that work with mac80211
(sta.c and scan.c).
v2:
- Fix line ends
- Update TODO with Felix idea
- Add architecture schematics in cover letter
JÃrÃme Pouiller (55):
staging: wfx: fix the cache of rate policies on interface reset
staging: wfx: fix case of lack of tx_retry_policies
staging: wfx: fix counter overflow
staging: wfx: use boolean appropriately
staging: wfx: firmware does not support more than 32 total retries
staging: wfx: fix rate control handling
staging: wfx: ensure that retry policy always fallbacks to MCS0 /
1Mbps
staging: wfx: detect race condition in WEP authentication
staging: wfx: fix hif_set_mfp() with big endian hosts
staging: wfx: fix wrong error message
staging: wfx: increase SPI bus frequency limit
staging: wfx: don't print useless error messages
staging: wfx: avoid double warning when no more tx policy are
available
staging: wfx: improve error message on unexpected confirmation
staging: wfx: take advantage of IS_ERR_OR_NULL()
staging: wfx: uniformize naming rule
staging: wfx: use meaningful names for CFG_BYTE_ORDER_*
staging: wfx: remove useless include
staging: wfx: simplify variable assignment
staging: wfx: make conditions easier to read
staging: wfx: ensure that traces never modify arguments
staging: wfx: ensure that received hif messages are never modified
staging: wfx: fix typo in "num_of_ssi_ds"
staging: wfx: fix typo in "num_i_es"
staging: wfx: fix name of struct hif_req_start_scan_alt
staging: wfx: improve API of hif_req_join->infrastructure_bss_mode
staging: wfx: better naming for hif_req_join->short_preamble
staging: wfx: better naming for
hif_mib_set_association_mode->greenfield
staging: wfx: simplify handling of tx_lock in wfx_do_join()
staging: wfx: firmware already handle powersave mode during scan
staging: wfx: declare wfx_set_pm() static
staging: wfx: drop useless argument from wfx_set_pm()
staging: wfx: remove redundant test while calling wfx_update_pm()
staging: wfx: drop unnecessary wvif->powersave_mode
staging: wfx: do not try to save call to hif_set_pm()
staging: wfx: fix pm_mode timeout
staging: wfx: simplify wfx_conf_tx()
staging: wfx: prefer a bitmask instead of an array of boolean
staging: wfx: simplify hif_set_uapsd_info() usage
staging: wfx: simplify hif_set_pm() usage
staging: wfx: drop struct wfx_edca_params
staging: wfx: remove unnecessary EDCA initialisation
staging: wfx: simplify hif_set_edca_queue_params() usage
staging: wfx: hif_scan() never fails
staging: wfx: device already handle sleep mode during scan
staging: wfx: drop useless wfx_scan_complete()
staging: wfx: simplify hif_scan() usage
staging: wfx: introduce update_probe_tmpl()
staging: wfx: simplify hif_set_template_frame() usage
staging: wfx: rewrite wfx_hw_scan()
staging: wfx: workaround bug with "iw scan"
staging: wfx: delayed_unjoin cannot happen
staging: wfx: delayed_link_loss cannot happen
staging: wfx: implement cancel_hw_scan()
staging: wfx: update TODO
drivers/staging/wfx/TODO | 81 +++++--
drivers/staging/wfx/bh.c | 3 +-
drivers/staging/wfx/bus_spi.c | 9 +-
drivers/staging/wfx/data_rx.c | 8 +-
drivers/staging/wfx/data_rx.h | 4 +-
drivers/staging/wfx/data_tx.c | 40 +++-
drivers/staging/wfx/data_tx.h | 7 +-
drivers/staging/wfx/fwio.c | 28 +--
drivers/staging/wfx/hif_api_cmd.h | 32 +--
drivers/staging/wfx/hif_api_mib.h | 13 +-
drivers/staging/wfx/hif_rx.c | 103 +++++----
drivers/staging/wfx/hif_tx.c | 109 +++++----
drivers/staging/wfx/hif_tx.h | 17 +-
drivers/staging/wfx/hif_tx_mib.h | 27 ++-
drivers/staging/wfx/hwio.h | 15 +-
drivers/staging/wfx/main.c | 5 +-
drivers/staging/wfx/queue.c | 9 +-
drivers/staging/wfx/scan.c | 323 +++++++--------------------
drivers/staging/wfx/scan.h | 25 +--
drivers/staging/wfx/secure_link.h | 8 +-
drivers/staging/wfx/sta.c | 353 ++++++++----------------------
drivers/staging/wfx/sta.h | 9 +-
drivers/staging/wfx/traces.h | 14 +-
drivers/staging/wfx/wfx.h | 18 +-
24 files changed, 509 insertions(+), 751 deletions(-)
--
2.24.0