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