From: Jérôme Pouiller <jerome.pouiller@xxxxxxxxxx> 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(-) -- 2.25.0