mbox series

[v2,00/65] Simplify and improve the wfx driver

Message ID 20200115135338.14374-1-Jerome.Pouiller@silabs.com
Headers show
Series Simplify and improve the wfx driver | expand

Message

Jérôme Pouiller Jan. 15, 2020, 1:54 p.m. UTC
From: Jérôme Pouiller <jerome.pouiller@silabs.com>

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.
    
v2:
  - Now it compiles (a last minute rebase did break the build).

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(-)