mbox series

[00/65] Simplify and improve the wfx driver

Message ID 20200115121041.10863-1-Jerome.Pouiller@silabs.com (mailing list archive)
Headers show
Series Simplify and improve the wfx driver | expand

Message

Jérôme Pouiller Jan. 15, 2020, 12:12 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.

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

Comments

Greg KH Jan. 15, 2020, 1:40 p.m. UTC | #1
On Wed, Jan 15, 2020 at 12:12:07PM +0000, Jérôme Pouiller wrote:
> From: Jérôme Pouiller <jerome.pouiller@silabs.com>
> 
> Hello all,
> 
> This pull request is finally bigger than I expected, sorry.

After applying this series, I get this build error:

drivers/staging/wfx/sta.c: In function ‘wfx_cqm_bssloss_sm’:
drivers/staging/wfx/sta.c:91:28: error: expected ‘;’ before ‘struct’
   91 |   struct ieee80211_hdr *hdr
      |                            ^
      |                            ;
   92 |   struct ieee80211_tx_control control = { };
      |   ~~~~~~
drivers/staging/wfx/sta.c:99:3: error: ‘hdr’ undeclared (first use in this function); did you mean ‘idr’?
   99 |   hdr = (struct ieee80211_hdr *)skb->data;
      |   ^~~
      |   idr

Did you even test-build this?

I could try to bisect and track down the offending commit, but that's
too much work :)

I'll wait for a v2 of this series, please fix up and resend.

thanks,

greg k-h
Jérôme Pouiller Jan. 15, 2020, 1:50 p.m. UTC | #2
On Wednesday 15 January 2020 14:40:10 CET Greg Kroah-Hartman wrote:
> On Wed, Jan 15, 2020 at 12:12:07PM +0000, Jérôme Pouiller wrote:
> > From: Jérôme Pouiller <jerome.pouiller@silabs.com>
> >
> > Hello all,
> >
> > This pull request is finally bigger than I expected, sorry.
> 
> After applying this series, I get this build error:
> 
> drivers/staging/wfx/sta.c: In function ‘wfx_cqm_bssloss_sm’:
> drivers/staging/wfx/sta.c:91:28: error: expected ‘;’ before ‘struct’
>    91 |   struct ieee80211_hdr *hdr
>       |                            ^
>       |                            ;
>    92 |   struct ieee80211_tx_control control = { };
>       |   ~~~~~~
> drivers/staging/wfx/sta.c:99:3: error: ‘hdr’ undeclared (first use in this function); did you mean ‘idr’?
>    99 |   hdr = (struct ieee80211_hdr *)skb->data;
>       |   ^~~
>       |   idr
> 
> Did you even test-build this?

Arf, I have not tried to built after having fixed warnings from
checkpatch. Shame on me.