[PATCH 00/65] Simplify and improve the wfx driver

Jérôme Pouiller
2020-01-15T12:13:01Z

Hello all,

This pull request is finally bigger than I expected, sorry.

It contains 2 main topics:
- Simplify handling of stations in power save mode. Most of the work
was redundant with mac80211. I have saved plenty of lines of code
by using the mac80211 API better.
- Continue to clearly separate hardware interface from the rest of
the driver. The biggest part of this clean-up is done. It is now
possible to look at the warning raised by sparse and fix
support for big endian hosts.

Jérôme Pouiller (65):
staging: wfx: revert unexpected change in debugfs output
staging: wfx: make hif_scan() usage clearer
staging: wfx: add missing PROBE_RESP_OFFLOAD feature
staging: wfx: send rate policies one by one
staging: wfx: simplify hif_set_tx_rate_retry_policy() usage
staging: wfx: simplify hif_set_output_power() usage
staging: wfx: simplify hif_set_rcpi_rssi_threshold() usage
staging: wfx: simplify hif_set_arp_ipv4_filter() usage
staging: wfx: simplify hif_start() usage
staging: wfx: use specialized structs for HIF arguments
staging: wfx: retrieve ampdu_density from sta->ht_cap
staging: wfx: retrieve greenfield mode from sta->ht_cap and bss_conf
staging: wfx: drop struct wfx_ht_info
staging: wfx: drop wdev->output_power
staging: wfx: simplify wfx_config()
staging: wfx: rename wfx_upload_beacon()
staging: wfx: simplify wfx_upload_ap_templates()
staging: wfx: simplify wfx_update_beaconing()
staging: wfx: fix __wfx_flush() when drop == false
staging: wfx: simplify wfx_flush()
staging: wfx: simplify update of DTIM period
staging: wfx: drop wvif->dtim_period
staging: wfx: drop wvif->enable_beacon
staging: wfx: drop wvif->cqm_rssi_thold
staging: wfx: drop wvif->setbssparams_done
staging: wfx: drop wfx_set_cts_work()
staging: wfx: SSID should be provided to hif_start() even if hidden
staging: wfx: simplify hif_update_ie()
staging: wfx: simplify hif_join()
staging: wfx: simplify hif_set_association_mode()
staging: wfx: simplify hif_set_uc_mc_bc_condition()
staging: wfx: simplify hif_mib_uc_mc_bc_data_frame_condition
staging: wfx: simplify hif_mib_set_data_filtering
staging: wfx: simplify hif_set_data_filtering()
staging: wfx: simplify hif_set_mac_addr_condition()
staging: wfx: simplify hif_set_config_data_filter()
staging: wfx: simplify wfx_set_mcast_filter()
staging: wfx: simplify wfx_update_filtering()
staging: wfx: simplify wfx_scan_complete()
staging: wfx: update power-save per interface
staging: wfx: with multiple vifs, force PS only if channels differs
staging: wfx: do not update uapsd if not necessary
staging: wfx: fix case where RTS threshold is 0
staging: wfx: fix possible overflow on jiffies comparaison
staging: wfx: remove handling of "early_data"
staging: wfx: relocate "buffered" information to sta_priv
staging: wfx: fix bss_loss
staging: wfx: fix RCU usage
staging: wfx: simplify wfx_set_tim_impl()
staging: wfx: simplify the link-id allocation
staging: wfx: check that no tx is pending before release sta
staging: wfx: replace wfx_tx_get_tid() with ieee80211_get_tid()
staging: wfx: pspoll_mask make no sense
staging: wfx: sta and dtim
staging: wfx: firmware never return PS status for stations
staging: wfx: simplify wfx_suspend_resume_mc()
staging: wfx: simplify handling of IEEE80211_TX_CTL_SEND_AFTER_DTIM
staging: wfx: simplify wfx_ps_notify_sta()
staging: wfx: ensure that packet_id is unique
staging: wfx: remove unused do_probe
staging: wfx: remove check for interface state
staging: wfx: simplify hif_handle_tx_data()
staging: wfx: simplify wfx_tx_queue_get_num_queued()
staging: wfx: simplify hif_multi_tx_confirm()
staging: wfx: update TODO

drivers/staging/wfx/TODO | 12 +-
drivers/staging/wfx/data_rx.c | 77 +---
drivers/staging/wfx/data_tx.c | 315 +++----------
drivers/staging/wfx/data_tx.h | 25 -
drivers/staging/wfx/debug.c | 2 +-
drivers/staging/wfx/hif_api_cmd.h | 3 +-
drivers/staging/wfx/hif_api_mib.h | 22 +-
drivers/staging/wfx/hif_rx.c | 20 +-
drivers/staging/wfx/hif_tx.c | 49 +-
drivers/staging/wfx/hif_tx.h | 11 +-
drivers/staging/wfx/hif_tx_mib.h | 157 +++++--
drivers/staging/wfx/main.c | 7 +-
drivers/staging/wfx/queue.c | 206 +++------
drivers/staging/wfx/queue.h | 10 +-
drivers/staging/wfx/scan.c | 14 +-
drivers/staging/wfx/scan.h | 5 +-
drivers/staging/wfx/sta.c | 735 ++++++++----------------------
drivers/staging/wfx/sta.h | 13 +-
drivers/staging/wfx/wfx.h | 25 +-
19 files changed, 526 insertions(+), 1182 deletions(-)

--
2.25.0