[PATCH 04/31] staging: wfx: keep API error list up-to-date

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller A new kind of error has appeared in API 3.4. The Linux driver is not concerned by this new error, but let's keep the API in sync with the firmware. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_general.h | 1 + drivers/staging/wfx/hif_rx.c | 2 +

[PATCH 10/31] staging: wfx: drop useless struct hif_reset_flags

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller Struct hif_reset_flags has no reason to exist. Drop it and simplify access to struct hif_req_reset. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_cmd.h | 6 +++--- drivers/staging/wfx/hif_tx.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)

[PATCH 17/31] staging: wfx: drop useless struct hif_rx_flags

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller Struct hif_rx_flags has no reason to exist. Drop it and simplify access to struct hif_ind_rx. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_rx.c | 2 +- drivers/staging/wfx/hif_api_cmd.h | 25 ++--- 2 files changed, 11 insertions(+),

[PATCH 12/31] staging: wfx: drop useless struct hif_join_flags

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller Struct hif_join_flags has no reason to exist. Drop it and simplify access to struct hif_req_join. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_cmd.h | 18 +++--- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/staging/w

[PATCH 09/31] staging: wfx: drop useless union hif_commands_ids

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller Union hif_commands_ids is unused. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_cmd.h | 6 -- 1 file changed, 6 deletions(-) diff --git a/drivers/staging/wfx/hif_api_cmd.h b/drivers/staging/wfx/hif_api_cmd.h index 75e8c2a7fdf9..c132d8e43b50 100644 -

[PATCH 07/31] staging: wfx: drop useless function

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller Since the code for multicast filtering has been dropped, the function hif_set_data_filtering() is only called to disable multicast filtering. In fact, the multicast filtering is already disabled by default. So, this function is useless and can be dropped. Signed-off-by: Jér

[PATCH 05/31] staging: wfx: drop 'secure link' feature

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller The Secure Link (slk) feature allows to encrypt (and authenticate) the traffic between the host and the device. The official implementation of this feature relies on mbedTLS. For that reason, this implementation is not included in the current driver. To be included, the impl

[PATCH 03/31] staging: wfx: simplify hif_set_association_mode()

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller The file hif_tx_mib.c expects to contain functions that format messages for the hardware. It is unexpected to find function that manipulate RCU and structures from mac80211. Keep hif_set_association_mode() with the code necessary for message formatting and relocate the smar

[PATCH 06/31] staging: wfx: drop multicast filtering

2020-09-07 Thread Jerome Pouiller
From: Jérôme Pouiller The device allows to filter multicast frames. The driver has the necessary code to take advantage of this feature. However, some bugs has been reported on this feature. So, it was temporary disabled. Finally, the things work well as-is for more than one year now. So there i

[PATCH 2/2] staging: wfx: fix test on return value of gpiod_get_value()

2020-10-19 Thread Jerome Pouiller
From: Jérôme Pouiller The commit 8522d62e6bca ("staging: wfx: gpiod_get_value() can return an error") has changed the way the driver test the value returned by gpiod_get_value(). The new code was wrong. Fixes: 8522d62e6bca ("staging: wfx: gpiod_get_value() can return an error") Signed-off-by: Jé

[PATCH 1/2] staging: wfx: fix use of uninitialized pointer

2020-10-19 Thread Jerome Pouiller
From: Jérôme Pouiller With -Wuninitialized, the compiler complains: drivers/staging/wfx/data_tx.c:34:19: warning: variable 'band' is uninitialized when used here [-Wuninitialized] if (rate->idx >= band->n_bitrates) { ^~~~ Reported-by: kernel test robot Reported-by

[PATCH v2 00/24] wfx: get out from the staging area

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller I think the wfx driver is now mature enough to be accepted in the drivers/net/wireless directory. As requested by Kalle[1], I send one file per patch. At the end, all the patches (or at least the patches 3 to 24) will be squashed (therefore, I didn't bother to write real co

[PATCH v2 02/24] dt-bindings: introduce silabs,wfx.yaml

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- .../bindings/net/wireless/silabs,wfx.yaml | 133 ++ 1 file changed, 133 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml diff --git a/Documentation/devicetree/bindings/

[PATCH v2 01/24] mmc: sdio: add SDIO IDs for Silabs WF200 chip

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Add Silabs SDIO ID to sdio_ids.h. Note that the values used by Silabs are uncommon. A driver cannot fully rely on the SDIO PnP. It should also check if the device is declared in the DT. Signed-off-by: Jérôme Pouiller --- include/linux/mmc/sdio_ids.h | 5 + 1 file cha

[PATCH v2 03/24] wfx: add Makefile/Kconfig

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/Kconfig | 8 drivers/net/wireless/silabs/wfx/Makefile | 25 2 files changed, 33 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/Kconfig create mode 100

[PATCH v2 09/24] wfx: add hwio.c/hwio.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hwio.c | 352 + drivers/net/wireless/silabs/wfx/hwio.h | 75 ++ 2 files changed, 427 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hwio.c create mode 100644

[PATCH v2 06/24] wfx: add bus.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus.h | 38 +++ 1 file changed, 38 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bus.h diff --git a/drivers/net/wireless/silabs/wfx/bus.h b/drivers/net/wireless

[PATCH v2 14/24] wfx: add key.c/key.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/key.c | 241 ++ drivers/net/wireless/silabs/wfx/key.h | 20 +++ 2 files changed, 261 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/key.c create mode 100644 driv

[PATCH v2 20/24] wfx: add scan.c/scan.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/scan.c | 132 + drivers/net/wireless/silabs/wfx/scan.h | 22 + 2 files changed, 154 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/scan.c create mode 100644

[PATCH v2 11/24] wfx: add bh.c/bh.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bh.c | 333 +++ drivers/net/wireless/silabs/wfx/bh.h | 33 +++ 2 files changed, 366 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bh.c create mode 100644 driver

[PATCH v2 13/24] wfx: add hif_tx*.c/hif_tx*.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_tx.c | 523 +++ drivers/net/wireless/silabs/wfx/hif_tx.h | 60 +++ drivers/net/wireless/silabs/wfx/hif_tx_mib.c | 324 drivers/net/wireless/silabs/wfx/hif_tx_mib.h

[PATCH v2 22/24] wfx: add traces.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/traces.h | 501 +++ 1 file changed, 501 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/traces.h diff --git a/drivers/net/wireless/silabs/wfx/traces.h b/drivers/net/w

[PATCH v2 24/24] wfx: get out from the staging area

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller The wfx driver is now mature enough to leave the staging area. Signed-off-by: Jérôme Pouiller --- MAINTAINERS | 3 ++- drivers/net/wireless/Kconfig | 1 + drivers/net/wireless/Makefile| 1 + drivers/net/wireless/silabs/Kconfig

[PATCH v2 17/24] wfx: add queue.c/queue.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/queue.c | 304 drivers/net/wireless/silabs/wfx/queue.h | 45 2 files changed, 349 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/queue.c create mode 100644

[PATCH v2 21/24] wfx: add debug.c/debug.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/debug.c | 359 drivers/net/wireless/silabs/wfx/debug.h | 19 ++ 2 files changed, 378 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/debug.c create mode 100644 d

[PATCH v2 15/24] wfx: add hif_rx.c/hif_rx.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_rx.c | 415 +++ drivers/net/wireless/silabs/wfx/hif_rx.h | 18 + 2 files changed, 433 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hif_rx.c create mode 100644

[PATCH v2 18/24] wfx: add data_tx.c/data_tx.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/data_tx.c | 585 ++ drivers/net/wireless/silabs/wfx/data_tx.h | 67 +++ 2 files changed, 652 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/data_tx.c create mode 100

[PATCH v2 12/24] wfx: add hif_api_*.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_api_cmd.h | 553 ++ .../net/wireless/silabs/wfx/hif_api_general.h | 267 + drivers/net/wireless/silabs/wfx/hif_api_mib.h | 343 +++ 3 files changed, 1163 insertions(+) c

[PATCH v2 10/24] wfx: add fwio.c/fwio.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/fwio.c | 405 + drivers/net/wireless/silabs/wfx/fwio.h | 15 + 2 files changed, 420 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/fwio.c create mode 100644 driv

[PATCH v2 16/24] wfx: add data_rx.c/data_rx.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/data_rx.c | 93 +++ drivers/net/wireless/silabs/wfx/data_rx.h | 18 + 2 files changed, 111 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/data_rx.c create mode 10

[PATCH v2 08/24] wfx: add bus_sdio.c

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus_sdio.c | 258 + 1 file changed, 258 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bus_sdio.c diff --git a/drivers/net/wireless/silabs/wfx/bus_sdio.c b/drivers/n

[PATCH v2 19/24] wfx: add sta.c/sta.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/sta.c | 807 ++ drivers/net/wireless/silabs/wfx/sta.h | 73 +++ 2 files changed, 880 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/sta.c create mode 100644 driv

[PATCH v2 07/24] wfx: add bus_spi.c

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus_spi.c | 271 ++ 1 file changed, 271 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bus_spi.c diff --git a/drivers/net/wireless/silabs/wfx/bus_spi.c b/drivers/net

[PATCH v2 05/24] wfx: add main.c/main.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/main.c | 489 + drivers/net/wireless/silabs/wfx/main.h | 44 +++ 2 files changed, 533 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/main.c create mode 100644 dr

[PATCH v2 04/24] wfx: add wfx.h

2020-10-20 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/wfx.h | 166 ++ 1 file changed, 166 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/wfx.h diff --git a/drivers/net/wireless/silabs/wfx/wfx.h b/drivers/net/wireles

[PATCH v3 01/24] mmc: sdio: add SDIO IDs for Silabs WF200 chip

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Add Silabs SDIO ID to sdio_ids.h. Note that the values used by Silabs are uncommon. A driver cannot fully rely on the SDIO PnP. It should also check if the device is declared in the DT. Signed-off-by: Jérôme Pouiller --- include/linux/mmc/sdio_ids.h | 5 + 1 file cha

[PATCH v3 02/24] dt-bindings: introduce silabs,wfx.yaml

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- .../bindings/net/wireless/silabs,wfx.yaml | 131 ++ 1 file changed, 131 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml diff --git a/Documentation/devicetree/bindings/

[PATCH v3 06/24] wfx: add bus.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus.h | 38 +++ 1 file changed, 38 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bus.h diff --git a/drivers/net/wireless/silabs/wfx/bus.h b/drivers/net/wireless

[PATCH v3 00/24] wfx: get out from the staging area

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller I think the wfx driver is now mature enough to be accepted in the drivers/net/wireless directory. As requested by Kalle[1], I send one file per patch. At the end, all the patches (or at least the patches 3 to 24) will be squashed (therefore, I didn't bother to write real co

[PATCH v3 08/24] wfx: add bus_sdio.c

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus_sdio.c | 258 + 1 file changed, 258 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bus_sdio.c diff --git a/drivers/net/wireless/silabs/wfx/bus_sdio.c b/drivers/n

[PATCH v3 17/24] wfx: add queue.c/queue.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/queue.c | 304 drivers/net/wireless/silabs/wfx/queue.h | 45 2 files changed, 349 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/queue.c create mode 100644

[PATCH v3 13/24] wfx: add hif_tx*.c/hif_tx*.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_tx.c | 523 +++ drivers/net/wireless/silabs/wfx/hif_tx.h | 60 +++ drivers/net/wireless/silabs/wfx/hif_tx_mib.c | 324 drivers/net/wireless/silabs/wfx/hif_tx_mib.h

[PATCH v3 16/24] wfx: add data_rx.c/data_rx.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/data_rx.c | 93 +++ drivers/net/wireless/silabs/wfx/data_rx.h | 18 + 2 files changed, 111 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/data_rx.c create mode 10

[PATCH v3 10/24] wfx: add fwio.c/fwio.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/fwio.c | 405 + drivers/net/wireless/silabs/wfx/fwio.h | 15 + 2 files changed, 420 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/fwio.c create mode 100644 driv

[PATCH v3 12/24] wfx: add hif_api_*.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_api_cmd.h | 553 ++ .../net/wireless/silabs/wfx/hif_api_general.h | 267 + drivers/net/wireless/silabs/wfx/hif_api_mib.h | 343 +++ 3 files changed, 1163 insertions(+) c

[PATCH v3 09/24] wfx: add hwio.c/hwio.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hwio.c | 352 + drivers/net/wireless/silabs/wfx/hwio.h | 75 ++ 2 files changed, 427 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hwio.c create mode 100644

[PATCH v3 18/24] wfx: add data_tx.c/data_tx.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/data_tx.c | 585 ++ drivers/net/wireless/silabs/wfx/data_tx.h | 67 +++ 2 files changed, 652 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/data_tx.c create mode 100

[PATCH v3 20/24] wfx: add scan.c/scan.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/scan.c | 132 + drivers/net/wireless/silabs/wfx/scan.h | 22 + 2 files changed, 154 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/scan.c create mode 100644

[PATCH v3 19/24] wfx: add sta.c/sta.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/sta.c | 807 ++ drivers/net/wireless/silabs/wfx/sta.h | 73 +++ 2 files changed, 880 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/sta.c create mode 100644 driv

[PATCH v3 22/24] wfx: add traces.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/traces.h | 501 +++ 1 file changed, 501 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/traces.h diff --git a/drivers/net/wireless/silabs/wfx/traces.h b/drivers/net/w

[PATCH v3 24/24] wfx: get out from the staging area

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller The wfx driver is now mature enough to leave the staging area. Signed-off-by: Jérôme Pouiller --- MAINTAINERS | 3 ++- drivers/net/wireless/Kconfig | 1 + drivers/net/wireless/Makefile| 1 + drivers/net/wireless/silabs/Kconfig

[PATCH v3 15/24] wfx: add hif_rx.c/hif_rx.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_rx.c | 415 +++ drivers/net/wireless/silabs/wfx/hif_rx.h | 18 + 2 files changed, 433 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hif_rx.c create mode 100644

[PATCH v3 21/24] wfx: add debug.c/debug.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/debug.c | 359 drivers/net/wireless/silabs/wfx/debug.h | 19 ++ 2 files changed, 378 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/debug.c create mode 100644 d

[PATCH v3 14/24] wfx: add key.c/key.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/key.c | 241 ++ drivers/net/wireless/silabs/wfx/key.h | 20 +++ 2 files changed, 261 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/key.c create mode 100644 driv

[PATCH v3 11/24] wfx: add bh.c/bh.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bh.c | 333 +++ drivers/net/wireless/silabs/wfx/bh.h | 33 +++ 2 files changed, 366 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bh.c create mode 100644 driver

[PATCH v3 03/24] wfx: add Makefile/Kconfig

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/Kconfig | 8 drivers/net/wireless/silabs/wfx/Makefile | 25 2 files changed, 33 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/Kconfig create mode 100

[PATCH v3 07/24] wfx: add bus_spi.c

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus_spi.c | 271 ++ 1 file changed, 271 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bus_spi.c diff --git a/drivers/net/wireless/silabs/wfx/bus_spi.c b/drivers/net

[PATCH v3 04/24] wfx: add wfx.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/wfx.h | 166 ++ 1 file changed, 166 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/wfx.h diff --git a/drivers/net/wireless/silabs/wfx/wfx.h b/drivers/net/wireles

[PATCH v3 05/24] wfx: add main.c/main.h

2020-11-04 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/main.c | 489 + drivers/net/wireless/silabs/wfx/main.h | 44 +++ 2 files changed, 533 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/main.c create mode 100644 dr

[PATCH 03/13] staging: wfx: correctly retrieve vif ID from Tx confirmation

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller The device is able to send multiple Tx confirmations in the one reply. In this case, there is only one vif identifier for all the confirmations. Unfortunately, to generate this kind of messages the device squashes all the confirmations whatever their vif ID and use the vif

[PATCH 06/13] staging: wfx: improve protection against malformed HIF messages

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller As discussed here[1], if a message was smaller than the size of the message header, it could be incorrectly processed. [1] https://lore.kernel.org/driverdev-devel/2302785.6C7ODC2LYm@pc-42/ Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bh.c | 36 +

[PATCH 12/13] staging: wfx: add a debugfs entry to force ps_timeout

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller In some advanced usage or debug scenarios, it could interesting to change the value of ps_timeout or eventually to force use of PS-Poll frames. The wext API (used by iwconfig) provide a way to change ps_timeout. However, this API is obsolete and it seems a little weird to u

[PATCH 07/13] staging: wfx: fix unexpected calls to ieee80211_sta_set_buffered()

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller When a station go to sleep, the driver receive the status REQUEUE and forward this answer to mac80211. So, neither the driver, neither the hardware buffer the frames. So the call to ieee80211_sta_set_buffered is useless. In add, it seems that mac80211 does not expect to rec

[PATCH 00/13] staging: wfx: multiple fixes

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller Hello, This series fixes a few issues/improvements discovered during the last months. Jérôme Pouiller (13): staging: wfx: associate tx_queues to vifs staging: wfx: check the vif ID of the Tx confirmations staging: wfx: correctly retrieve vif ID from Tx confirmation

[PATCH 13/13] staging: wfx: always enable FastPs in combo with new firmwares

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller When multiple interface on different channels are in use. It is necessary to advertise the AP that the device is no more awake before to switch to the other channel. Until now, PS-Poll was the preferred mechanism for that. However. The new firmwares (>= 3.7) now nicely sup

[PATCH 02/13] staging: wfx: check the vif ID of the Tx confirmations

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller When the driver has sent a frame on a virtual interface (vif), it expects to receive the confirmation on the same vif. This patch add a check for that. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(

[PATCH 01/13] staging: wfx: associate tx_queues to vifs

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller The device handles 4 queues (one per AC) for each virtual interface (and maximum 4 virtual interfaces). Until now the driver unified the queue of all interfaces and handled only 4 queues for whole device. This architecture did not allow to balance the traffic between the vi

[PATCH 04/13] staging: wfx: add tracepoint "queues_stats"

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller It is useful to check which queue the driver choose to send to the hardware. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 3 +++ drivers/staging/wfx/traces.h | 51 2 files changed, 54 insertions(+) diff --git a/d

[PATCH 11/13] staging: wfx: fix CCMP/TKIP replay protection

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller To enable the TKIP/CCMP replay protection, the frames has to be processed in the right order. However, the device is not able to re-order the frames during BlockAck sessions. Mac80211 is able to reorder the frames, but it need the information about the BlockAck sessions sta

[PATCH 10/13] staging: wfx: simplify handling of encrypted frames

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller We don't want mac80211 try to check MMIC and other security mechanisms. So, the driver remove all the data related to the encryption (IV, ICV, MMIC). However, enabling RX_FLAG_PN_VALIDATED is sufficient for that. So, drop the useless function wfx_drop_encrypt_data() and en

[PATCH 08/13] staging: wfx: drop counter of buffered frames

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller Since the driver does not call ieee80211_sta_set_buffered() anymore, it is no more necessary to maintain a counter of buffered frames for each stations. This change allows to simplify the processing in multiple places in the driver. Signed-off-by: Jérôme Pouiller --- dri

[PATCH 09/13] staging: wfx: fix handling of frames without RSSI data

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller It seems that in the old days, the RSSI information could be missing. In this case, in order to not pollute the RSSI stats, the frame was dropped (!). It is far better to mark the frame with the flag RX_FLAG_NO_SIGNAL_VAL. In add, the problem seems now fixed in the firmwar

[PATCH 05/13] staging: wfx: load the firmware faster

2020-07-01 Thread Jerome Pouiller
From: Jérôme Pouiller During the loading of the firmware, the WFX_DCA_GET register provide the number available bytes in the receiving buffer. It is not necessary to access to the WFX_DCA_GET after sent of each firmware fragment. This patch allows to send the firmware: - in 64ms instead of 130

[PATCH v2 01/17] staging: wfx: fix use of cpu_to_le32 instead of le32_to_cpu

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller Sparse detected that le32_to_cpu should be used instead of cpu_to_le32. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hwio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wfx/hwio.c b/drivers/staging/wfx/hwio.c index d878cb3e

[PATCH v2 15/17] staging: wfx: fix endianness of the field 'num_tx_confs'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The field 'num_tx_confs' from the struct hif_cnf_multi_transmit is a __le32. Sparse complains this field is not always correctly accessed: drivers/staging/wfx/hif_rx.c:82:9: warning: restricted __le32 degrades to integer drivers/staging/wfx/hif_rx.c:87:29: warning:

[PATCH v2 17/17] staging: wfx: update TODO

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller Update the TODO list associated to the wfx driver with the last progresses. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/TODO | 19 --- 1 file changed, 19 deletions(-) diff --git a/drivers/staging/wfx/TODO b/drivers/staging/wfx/TODO index fca333

[PATCH v2 00/17] staging: wfx: fix support for big-endian hosts

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller Hello, As already discussed here[1], this series improves support for big endian hosts. All warnings raised by sparse are now fixed. Note, this series aims to be applied on top of PR named "staging: wfx: fix Out-Of-Band IRQ" [1] https://lore.kernel.org/lkml/201920285

[PATCH v2 13/17] staging: wfx: fix access to le32 attribute 'len'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller Sparse complains about the accesses to the field 'len' from struct hif_msg: drivers/staging/wfx/bh.c:88:32: warning: restricted __le16 degrades to integer drivers/staging/wfx/bh.c:88:32: warning: restricted __le16 degrades to integer drivers/staging/wfx/bh.c:9

[PATCH v2 07/17] staging: wfx: fix endianness of hif_req_read_mib fields

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The structs hif_{req,cnf}_read_mib contain only little endian values. Thus, it is necessary to fix byte ordering before to use them. Especially, sparse detected wrong accesses to fields mib_id and length. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 1

[PATCH v2 16/17] staging: wfx: fix endianness of the field 'channel_number'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The field 'channel_number' from the structs hif_ind_rx and hif_req_start is a __le32. Sparse complains this field is not always correctly accessed: drivers/staging/wfx/data_rx.c:95:55: warning: incorrect type in argument 1 (different base types) drivers/staging/wfx

[PATCH v2 12/17] staging: wfx: fix endianness of the struct hif_ind_startup

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The struct hif_ind_startup is received from the hardware. So it is declared as little endian. However, it is also stored in the main driver structure and used on different places in the driver. Sparse complains about that: drivers/staging/wfx/data_tx.c:388:43: warning:

[PATCH v2 04/17] staging: wfx: fix wrong bytes order

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The field wakeup_period_max from struct hif_mib_beacon_wake_up_period is a u8. So, assigning it a __le16 produces a nasty bug on big-endian architectures. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx_mib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletio

[PATCH v2 06/17] staging: wfx: fix endianness of fields media_delay and tx_queue_delay

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The struct hif_cnf_tx contains only little endian values. Thus, it is necessary to fix byte ordering before to use them. Especially, sparse detected wrong access to fields media_delay and tx_queue_delay. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 3

[PATCH v2 11/17] staging: wfx: declare the field 'packet_id' with native byte order

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The field packet_id is not interpreted by the device. It is only used as identifier for the device answer. So it is not necessary to declare it little endian. It fixes some warnings raised by Sparse without complexifying the code. Signed-off-by: Jérôme Pouiller --- driver

[PATCH v2 05/17] staging: wfx: fix output of rx_stats on big endian hosts

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The struct hif_rx_stats contains only little endian values. Thus, it is necessary to fix byte ordering before to use them. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/debug.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/driver

[PATCH v2 09/17] staging: wfx: fix access to le32 attribute 'event_id'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The attribute event_id is little-endian. We have to take to the endianness when we access it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_rx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wfx/hif_rx.c b/drivers/st

[PATCH v2 08/17] staging: wfx: fix access to le32 attribute 'ps_mode_error'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The attribute ps_mode_error is little-endian. We have to take to the endianness when we access it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_rx.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wfx/hif_rx.c b/dri

[PATCH v2 02/17] staging: wfx: take advantage of le32_to_cpup()

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller le32_to_cpu(*x) can be advantageously converted in le32_to_cpup(x). Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wfx/hif_rx.c b/drivers/staging/wfx/hif_rx.c index ac4ec4

[PATCH v2 10/17] staging: wfx: fix access to le32 attribute 'indication_type'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The attribute indication_type is little-endian. We have to take to the endianness when we access it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_rx.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wfx/hif_rx.c b/

[PATCH v2 03/17] staging: wfx: fix cast operator

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller Sparse detects that le16_to_cpup() expects a __le16 * as argument. Change the cast operator to be compliant with sparse. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bh.c | 2 +- drivers/staging/wfx/traces.h | 2 +- 2 files changed, 2 insertions(+), 2 delet

[PATCH v2 14/17] staging: wfx: fix endianness of the field 'status'

2020-05-12 Thread Jerome Pouiller
From: Jérôme Pouiller The field 'status' appears in most of structs returned by the hardware. This field is encoded as little endian. Sparse complains this field is not always correctly accessed: drivers/staging/wfx/data_rx.c:53:16: warning: restricted __le32 degrades to integer drivers

<    1   2   3   4