[PATCH 00/10] staging: wfx: introduce nl80211 vendor extensions

From: Jerome Pouiller
Date: Tue May 26 2020 - 13:18:46 EST

From: JÃrÃme Pouiller <jerome.pouiller@xxxxxxxxxx>


This series introduces some nl80211 vendor extensions to the wfx driver.

This series may lead to some discussions:

1. Patch 7 allows to change the dynamic PS timeout. I have found
an API in wext (cfg80211_wext_siwpower()) that do more or less the
same thing. However, I have not found any equivalent in nl80211. Is it
expected or this API should be ported to nl80211?

2. The device The device allows to do Packet Traffic Arbitration (PTA or
also Coex). This feature allows the device to communicate with another
RF device in order to share the access to the RF. The patch 9 provides
a way to configure that. However, I think that this chip is not the
only one to provide this feature. Maybe a standard way to change
these parameters should be provided?

3. For these vendor extensions, I have used the new policy introduced by
the commit 901bb989185516 ("nl80211: require and validate vendor
command policy"). However, it seems that my version of 'iw' is not
able to follow this new policy (it does not pack the netlink
attributes into a NLA_NESTED). I could develop a tool specifically for
that API, but it is not very handy. So, in patch 10, I have also
introduced an API for compatibility with iw. Any comments about this?

JÃrÃme Pouiller (10):
staging: wfx: drop unused variable
staging: wfx: do not declare variables inside loops
staging: wfx: drop unused function wfx_pending_requeue()
staging: wfx: add support for tx_power_loop
staging: wfx: retrieve the PS status from the vif
staging: wfx: split wfx_get_ps_timeout() from wfx_update_pm()
staging: wfx: add support for set/get ps_timeout
staging: wfx: allow to burn prevent rollback bit
staging: wfx: allow to set PTA settings
staging: wfx: allow to run nl80211 vendor commands with 'iw'

drivers/staging/wfx/Makefile | 3 +-
drivers/staging/wfx/data_tx.c | 11 +-
drivers/staging/wfx/debug.c | 26 +++++
drivers/staging/wfx/hif_api_general.h | 67 +++++++++++-
drivers/staging/wfx/hif_rx.c | 7 ++
drivers/staging/wfx/hif_tx.c | 64 ++++++++++++
drivers/staging/wfx/hif_tx.h | 6 ++
drivers/staging/wfx/main.c | 6 ++
drivers/staging/wfx/nl80211_vendor.c | 143 ++++++++++++++++++++++++++
drivers/staging/wfx/nl80211_vendor.h | 93 +++++++++++++++++
drivers/staging/wfx/queue.c | 13 ---
drivers/staging/wfx/queue.h | 1 -
drivers/staging/wfx/sta.c | 56 ++++++----
drivers/staging/wfx/sta.h | 2 +
drivers/staging/wfx/wfx.h | 7 ++
15 files changed, 459 insertions(+), 46 deletions(-)
create mode 100644 drivers/staging/wfx/nl80211_vendor.c
create mode 100644 drivers/staging/wfx/nl80211_vendor.h