mbox series

[v2,00/55] Improve wfx driver

Message ID 20191217161318.31402-1-Jerome.Pouiller@silabs.com (mailing list archive)
Headers show
Series Improve wfx driver | expand

Message

Jérôme Pouiller Dec. 17, 2019, 4:14 p.m. UTC
From: Jérôme Pouiller <jerome.pouiller@silabs.com>

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

Comments

Greg KH Dec. 18, 2019, 3:03 p.m. UTC | #1
On Tue, Dec 17, 2019 at 04:14:26PM +0000, Jérôme Pouiller wrote:
> From: Jérôme Pouiller <jerome.pouiller@silabs.com>
> 
> 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

I took the first 10 to staging-linus to get into 5.5-final.

>   - 0029 to 0043 re-work power save (in station mode) and QoS
>   - 0044 to 0054 re-work the scan process

all the rest of these I've queued up "normally" in staging-next.

And thanks for fixing up the mime issue, these applied with no problems
at all.

greg k-h