[PATCH 01/12] staging: wfx: fix BA when device is AP and MFP is enabled

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The protection of the management frames is mainly done by mac80211. However, frames for the management of the BlockAck sessions are directly sent by the device. These frames have to be protected if MFP is in use. So the driver has to pass the MFP configuration to the device.

[PATCH 07/12] staging: wfx: fix frame reordering

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller When mac80211 debug is enabled, the trace below appears: [60744.340037] wlan0: Rx A-MPDU request on aa:bb:cc:97:60:24 tid 0 result -524 This imply that ___ieee80211_start_rx_ba_session will prematurely exit and frame reordering won't be enabled. Fixes: e5da5fbd77411

[PATCH 08/12] staging: wfx: fix potential use before init

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The trace below can appear: [83613.832200] INFO: trying to register non-static key. [83613.837248] the code is fine but needs lockdep annotation. [83613.842808] turning off the locking correctness validator. [83613.848375] CPU: 3 PID: 141 Comm: kworker/3:2H

[PATCH 11/12] staging: wfx: remove useless extra jiffy

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The initial developer has feared msecs_to_jiffies() could round down the result. However, the documentation of msecs_to_jiffies() says that the result is rounded upward. So the increment of the result of msecs_to_jiffies() is not necessary. Signed-off-by: Jérôme Pouiller -

[PATCH 12/12] staging: wfx: add workaround for 'timeout while wake up chip'

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The host and the device can be connected with a called Wake-Up GPIO. When the host fall down this GPIO, it allows the device to enter in deep sleep and no communication with the device is no more possible (the device wakes up automatically on DTIM and fetch data if necessary

[PATCH 10/12] staging: wfx: enable powersave on probe

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller In the old days, ieee80211 powersave has some impact on the Rx speed. These problems are solved for a long time now. There is no more reason to not enabling it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/main.c | 1 - 1 file changed, 1 deletion(-) diff --git

[PATCH 04/12] staging: wfx: fix spaces around binary operators

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller A binary operator should be followed by exactly one space. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/key.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wfx/key.c b/drivers/staging/wfx/key.c index 5ee2ffc5f935..6165

[PATCH 09/12] staging: wfx: scan while AP is supported

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The device is able to scan while running an Access Point. Just declare it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/main.c | 1 + drivers/staging/wfx/scan.c | 4 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/wfx/main.c b/

[PATCH 06/12] staging: wfx: drop useless field from struct wfx_tx_priv

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The device need to receive a skb with necessary space for the ICV. So, the driver adds this space before to send the frame. Currently, once the frame is sent, the driver restore the original content of the skb. However, this step is useless. Mac80211 don't do it when softwa

[PATCH 05/12] staging: wfx: fix support for cipher AES_CMAC (multicast PMF)

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller When MFP is enabled, the multicast management frames are not protected, in fact. Instead, but they should include an IE containing the MMIC of the frames (i.e. a cryptographic signature). Until now, the driver didn't correctly detect this kind of frames (they are not marked

[PATCH 03/12] staging: wfx: fix BA when MFP is disabled but BSS is MFP capable

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller The protection of the management frames is mainly done by mac80211. However, frames for the management of the BlockAck sessions are directly sent by the device. These frames have to be protected if MFP is in use. So the driver has to pass the MFP configuration to the device.

[PATCH 02/12] staging: wfx: improve usage of hif_map_link()

2020-08-20 Thread Jerome Pouiller
From: Jérôme Pouiller Until now, hif_map_link() get as argument the raw value for map_link_flags when map_link_flags is defined as a bitfield. It was error prone. Now hif_map_link() takes explicit value for every flags of the struct map_link_flags. Signed-off-by: Jérôme Pouiller --- drivers/s

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

2020-12-23 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. The firmware associated with this driver is available here[1]. It is not yet available in linux-firmware, but I am working on the PR. [1]: https://github.com/SiliconLabs/wfx-f

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

2020-12-23 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 | 7 +++ 1 file c

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

2020-12-23 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/main.c | 503 + drivers/net/wireless/silabs/wfx/main.h | 43 +++ 2 files changed, 546 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/main.c create mode 100644 dr

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

2020-12-23 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 v4 06/24] wfx: add bus.h

2020-12-23 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 v4 02/24] dt-bindings: introduce silabs,wfx.yaml

2020-12-23 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 v4 10/24] wfx: add fwio.c/fwio.h

2020-12-23 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 v4 07/24] wfx: add bus_spi.c

2020-12-23 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 v4 03/24] wfx: add Makefile/Kconfig

2020-12-23 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/Kconfig | 12 +++ drivers/net/wireless/silabs/wfx/Makefile | 26 2 files changed, 38 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/Kconfig create mode

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

2020-12-23 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_tx.c | 527 +++ 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 v4 12/24] wfx: add hif_api_*.h

2020-12-23 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_api_cmd.h | 555 ++ .../net/wireless/silabs/wfx/hif_api_general.h | 262 + drivers/net/wireless/silabs/wfx/hif_api_mib.h | 343 +++ 3 files changed, 1160 insertions(+) c

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

2020-12-23 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 v4 16/24] wfx: add data_rx.c/data_rx.h

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

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

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

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

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

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

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

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

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

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

2020-12-23 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 v4 08/24] wfx: add bus_sdio.c

2020-12-23 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 v4 11/24] wfx: add bh.c/bh.h

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

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

2020-12-23 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 v4 19/24] wfx: add sta.c/sta.h

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

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

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

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

2020-12-23 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hwio.c | 340 + drivers/net/wireless/silabs/wfx/hwio.h | 79 ++ 2 files changed, 419 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hwio.c create mode 100644

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

2021-03-15 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 | 7 +++ 1 file c

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

2021-03-15 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. The firmware is now a part of the linux-firmware repository since relase 20210315[1]. It had taken a bit of time because I have worked with the legal department to simplify the

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Prepare the inclusion of the wfx driver in the kernel. 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,w

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/Kconfig | 12 +++ drivers/net/wireless/silabs/wfx/Makefile | 26 2 files changed, 38 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/Kconfig create mode

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

2021-03-15 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 v5 05/24] wfx: add main.c/main.h

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/main.c | 503 + drivers/net/wireless/silabs/wfx/main.h | 43 +++ 2 files changed, 546 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/main.c create mode 100644 dr

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hwio.c | 340 + drivers/net/wireless/silabs/wfx/hwio.h | 79 ++ 2 files changed, 419 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hwio.c create mode 100644

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bus_sdio.c | 259 + 1 file changed, 259 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 v5 13/24] wfx: add hif_tx*.c/hif_tx*.h

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_tx.c | 527 +++ 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 v5 20/24] wfx: add scan.c/scan.h

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/scan.c | 131 + drivers/net/wireless/silabs/wfx/scan.h | 22 + 2 files changed, 153 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/scan.c create mode 100644

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

2021-03-15 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 v5 15/24] wfx: add hif_rx.c/hif_rx.h

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_rx.c | 416 +++ drivers/net/wireless/silabs/wfx/hif_rx.h | 18 + 2 files changed, 434 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/hif_rx.c create mode 100644

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/sta.c | 809 ++ drivers/net/wireless/silabs/wfx/sta.h | 73 +++ 2 files changed, 882 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/sta.c create mode 100644 driv

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

2021-03-15 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 v5 22/24] wfx: add traces.h

2021-03-15 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 v5 24/24] wfx: get out from the staging area

2021-03-15 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 v5 11/24] wfx: add bh.c/bh.h

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/bh.c | 332 +++ drivers/net/wireless/silabs/wfx/bh.h | 33 +++ 2 files changed, 365 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/bh.c create mode 100644 driver

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

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

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

2021-03-15 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 v5 10/24] wfx: add fwio.c/fwio.h

2021-03-15 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 v5 12/24] wfx: add hif_api_*.h

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/hif_api_cmd.h | 555 ++ .../net/wireless/silabs/wfx/hif_api_general.h | 262 + drivers/net/wireless/silabs/wfx/hif_api_mib.h | 343 +++ 3 files changed, 1160 insertions(+) c

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/debug.c | 361 drivers/net/wireless/silabs/wfx/debug.h | 19 ++ 2 files changed, 380 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/debug.c create mode 100644 d

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/queue.c | 307 drivers/net/wireless/silabs/wfx/queue.h | 45 2 files changed, 352 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/queue.c create mode 100644

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

2021-03-15 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/net/wireless/silabs/wfx/data_tx.c | 598 ++ drivers/net/wireless/silabs/wfx/data_tx.h | 68 +++ 2 files changed, 666 insertions(+) create mode 100644 drivers/net/wireless/silabs/wfx/data_tx.c create mode 100

[PATCH] staging: wfx: fix possible panic with re-queued frames

2021-02-08 Thread Jerome Pouiller
From: Jérôme Pouiller When the firmware rejects a frame (because station become asleep or disconnected), the frame is re-queued in mac80211. However, the re-queued frame was 8 bytes longer than the original one (the size of the ICV for the encryption). So, when mac80211 try to send this frame aga

Re: [PATCH 02/20] staging: wfx: add support for I/O access

2019-10-02 Thread Jerome Pouiller
On Thursday 19 September 2019 18:34:48 CEST Andrew Lunn wrote: > On Thu, Sep 19, 2019 at 10:52:35AM +0000, Jerome Pouiller wrote: > > +static int wfx_sdio_copy_from_io(void *priv, unsigned int reg_id, > > + void *dst, size_t count) > > +{ > >

Re: [PATCH 02/20] staging: wfx: add support for I/O access

2019-10-02 Thread Jerome Pouiller
On Wednesday 2 October 2019 18:42:14 CEST Greg Kroah-Hartman wrote: > On Wed, Oct 02, 2019 at 04:29:09PM +0000, Jerome Pouiller wrote: [...] > > > > Hi Andrew, > > > > I did not forget your suggestion. However, if everyone is agree with that, > > I'd &

[PATCH 1/7] staging: wfx: simplify memory allocation in wfx_update_filtering()

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller Original code did not handle case where kmalloc failed. By the way, it is more convenient to allocate and build HIF message in hif_set_beacon_filter_table() instead of to ask to caller function to build it. Fixes: 40115bbc40e2 ("staging: wfx: implement the rest of mac80211

[PATCH 4/7] staging: wfx: correctly cast data on big-endian targets

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller When built for a big-endian target, original code caused error: include/uapi/linux/swab.h:242:29: note: expected '__u32 * {aka unsigned int *}' but argument is of type 'struct hif_mib_protected_mgmt_policy *' Fixes: f95a29d40782 ("staging: wfx: add HIF commands helper

[PATCH 5/7] staging: wfx: fix copy_{to,from}_user() usage

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller On error, copy_to_user() returns number of bytes remaining. Driver should return -EFAULT. Fixes: 4f8b7fabb15d ("staging: wfx: allow to send commands to chip") Reported-by: kbuild test robot Reported-by: Dan Carpenter Signed-off-by: Jérôme Pouiller --- drivers/staging/wf

[PATCH 3/7] staging: wfx: le16_to_cpus() takes a reference as parameter

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller Original code caused an (100% reproducible) invalid memory access on big-endian targets. Fixes: b0998f0c040d "staging: wfx: add IRQ handling" Reported-by: kbuild test robot Reported-by: Stephen Rothwell Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bh.c | 4 ++-

[PATCH 0/7] Fix various compilation issues with wfx driver

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller Most of problems are related to big-endian architectures. Jérôme Pouiller (7): staging: wfx: simplify memory allocation in wfx_update_filtering() staging: wfx: remove misused call to cpu_to_le16() staging: wfx: le16_to_cpus() takes a reference as parameter staging:

[PATCH 2/7] staging: wfx: remove misused call to cpu_to_le16()

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller Indeed, hif_msg->id is a uint8_t, so use of cpu_to_le16() is a madness. Fixes: 9bca45f3d692 ("staging: wfx: allow to send 802.11 frames") Reported-by: kbuild test robot Reported-by: Stephen Rothwell Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 2 +-

[PATCH 6/7] staging: wfx: drop calls to BUG_ON()

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller Most of calls to BUG_ON() could replaced by WARN(). By the way, this patch also try to favor WARN() (that include a comment about the problem) instead of WARN_ON(). Reported-by: Andrew Lunn Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bh.c | 4 ++-- d

[PATCH 7/7] staging: wfx: avoid namespace contamination

2019-10-08 Thread Jerome Pouiller
From: Jérôme Pouiller tx_policy_init() was already defined in driver cw1200. So, compilation failed when wfx and cw1200 were both built-in. In order to keep a coherent naming scheme, this patch prefixes all "tx_policy_*" functions with "wfx_". Fixes: 9bca45f3d692 ("staging: wfx: allow to send 8

Re: [PATCH][next] staging: wfx: fix spelling mistake "hexdecimal" -> "hexadecimal"

2019-10-08 Thread Jerome Pouiller
On Tuesday 8 October 2019 10:22:05 CEST Colin King wrote: > From: Colin Ian King > > There is a spelling mistake in the documentation and a module parameter > description. Fix these. > > Signed-off-by: Colin Ian King > --- > .../devicetree/bindings/net/wireless/siliabs,wfx.txt| 2 +

Re: [PATCH][next] staging: wfx: fix swapped arguments in memset call

2019-10-09 Thread Jerome Pouiller
On Wednesday 9 October 2019 11:46:08 CEST Colin King wrote: > From: Colin Ian King > > The memset appears to have the 2nd and 3rd arguments in the wrong > order, fix this by swapping these around into the correct order. > > Addresses-Coverity: ("Memset fill truncated") > Fixes: 4f8b7fabb15d ("st

Re: [PATCH 0/7] Fix various compilation issues with wfx driver

2019-10-09 Thread Jerome Pouiller
On Tuesday 8 October 2019 17:10:56 CEST Greg Kroah-Hartman wrote: > On Tue, Oct 08, 2019 at 09:42:47AM +0000, Jerome Pouiller wrote: > > From: Jérôme Pouiller > > > > Most of problems are related to big-endian architectures. > > kbuild still reports 2 errors

[PATCH 01/20] staging: wfx: add infrastructure for new driver

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Instantiate build infrastructure WFx driver. This driver provides support for Wifi chipset Silicon Labs WF200 and further: https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf This chip support SPI and SDIO bus. SDIO interface has two particularities

[PATCH 00/20] Add support for Silicon Labs WiFi chip WF200 and further

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Hello all, This series add support for Silicon Labs WiFi chip WF200 and further: https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf This driver is an export from: https://github.com/SiliconLabs/wfx-linux-driver/ I squashed all commits from

[PATCH 17/20] staging: wfx: allow to receive 802.11 frames

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Again, this task is more complex than it should since driver try to handle itself power saving of stations. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 1 + drivers/staging/wfx/data_rx.c | 187 ++ drivers/staging/wf

[PATCH 08/20] staging: wfx: add tracepoints for HIF

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller These tracepoints decode HIF headers and provide more human readable results. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bh.c | 5 + drivers/staging/wfx/traces.h | 211 +++ 2 files changed, 216 insertions(+) diff --git a/

[PATCH 15/20] staging: wfx: add debug files and trace debug events

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Add traces when debug events happen and allow to ask internal information to chip. These features work independently from mac80211. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/debug.c | 122 +++ drivers/staging/wfx/hif_rx.c |

[PATCH 03/20] staging: wfx: add I/O API

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller hwio.c provides an abstraction to access different types of register of the chip. Note that only data register (aka FRAME_OUT) and control register are used normal communication. Other registers are only used during chip start up. Signed-off-by: Jérôme Pouiller --- drive

[PATCH 11/20] staging: wfx: allow to send commands to chip

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Chip has multiple input buffers and can handle multiple 802.11 frames in parallel. However, other HIF command must be sent sequentially. wsm_send_cmd() handles these requests. This commit also add send_hif_cmd in debugfs. This file allows to send arbitrary commands to chip.

[PATCH 18/20] staging: wfx: allow to scan networks

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 1 + drivers/staging/wfx/bh.c | 2 +- drivers/staging/wfx/hif_rx.c | 13 ++ drivers/staging/wfx/main.c | 5 + drivers/staging/wfx/scan.c | 258 +++ drivers/stag

[PATCH 05/20] staging: wfx: load firmware

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller A firmware is necessary to run the chip. wfx_init_device() is in charge of loading firmware on chip and doing low level initialization. Firmwares for WF200 are available here: https://github.com/SiliconLabs/wfx-firmware/ Note that firmware are encrypted. Driver checks t

[PATCH 09/20] staging: wfx: add support for start-up indication

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Once firmware is loaded, it send a first indication to host. This indication signalize that host can start to communicate with firmware. In add, it contains information about chip and firmware (MAC addresses, firmware version, etc...). Signed-off-by: Jérôme Pouiller --- d

[PATCH 19/20] staging: wfx: implement 802.11 key handling

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 1 + drivers/staging/wfx/key.c| 272 +++ drivers/staging/wfx/key.h| 22 +++ drivers/staging/wfx/main.c | 2 + drivers/staging/wfx/sta.c| 4 + drivers/stag

[PATCH 13/20] staging: wfx: introduce "secure link"

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Chip support encryption of the link between host and chip. This feature is called "secure link". Driver code on github[1] support it. However, it relies on mbedtls for cryptographic functions. So, I decided to not import this feature in current patch. However, in order to ke

[PATCH 16/20] staging: wfx: allow to send 802.11 frames

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Three things make this task more complex than it should: - Chip necessitate to associate a link-id to each station. It is same thing than association ID but, using 8 bits only. - Rate policy is sent separately from Tx frames - Driver try to handle itself power savi

[PATCH 06/20] staging: wfx: import HIF API headers

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller These files are shared with firmware sources. Only a subset of these definitions are used by driver but, for now, it is easier to import all. API defines 3 kinds of messages: - Requests (req) are sent from host to chip - Confirmations (cnf) are sent by chip and are al

[PATCH 20/20] staging: wfx: implement the rest of mac80211 API

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_rx.c | 26 + drivers/staging/wfx/data_tx.c | 16 + drivers/staging/wfx/debug.c |2 + drivers/staging/wfx/hif_rx.c | 53 ++ drivers/staging/wfx/hif_tx.c |1 + drivers/staging/wfx/main.c| 137

[PATCH 07/20] staging: wfx: add IRQ handling

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller bh_work() is in charge to schedule all HIF message from/to chip. On normal operation, when an IRQ is received, driver can get size of next message in control register. In order to save control register access, when chip send a message, it also appends a copy of control regi

[PATCH 10/20] staging: wfx: instantiate mac80211 data

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Allocate a struct ieee80211_hw but do not yet register it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 1 + drivers/staging/wfx/debug.c | 12 ++ drivers/staging/wfx/debug.h | 15 drivers/staging/wfx/main.c | 41 +

[PATCH 04/20] staging: wfx: add tracepoints for I/O access

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Some tracepoints are useful for debugging. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 6 +- drivers/staging/wfx/debug.c | 10 +++ drivers/staging/wfx/hwio.c | 11 +++ drivers/staging/wfx/traces.h | 154 +++ 4 f

[PATCH 02/20] staging: wfx: add support for I/O access

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Introduce bus level communication layer. At this level, 7 registers can be addressed. Notice that SPI driver is able to manage chip reset. SDIO mode relies on an external driver (`mmc-pwrseq`) to reset chip. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bus.h

[PATCH 12/20] staging: wfx: add HIF commands helpers

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Provide an abstraction for HIF commands. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 375 +++ drivers/staging/wfx/hif_tx.h | 33 +++ drivers/staging/wfx/hif_tx_mib.h | 281 +++ drivers/staging/

[PATCH 14/20] staging: wfx: setup initial chip configuration

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller A few tasks remain to be done in order to finish chip initial configuration: - configure chip to use multi-tx confirmation (speed up data transfer) - configure chip to use wake-up feature (save power consumption during runtime) - set hardware configuration

[PATCH v2 01/20] staging: wfx: add infrastructure for new driver

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Instantiate build infrastructure WFx driver. This driver provides support for Wifi chipset Silicon Labs WF200 and further: https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf This chip support SPI and SDIO bus. SDIO interface has two particularities

[PATCH v2 00/20] Add support for Silicon Labs WiFi chip WF200 and further

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Hello all, This series add support for Silicon Labs WiFi chip WF200 and further: https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf This driver is an export from: https://github.com/SiliconLabs/wfx-linux-driver/ I squashed all commits from

[PATCH v2 02/20] staging: wfx: add support for I/O access

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Introduce bus level communication layer. At this level, 7 registers can be addressed. Notice that SPI driver is able to manage chip reset. SDIO mode relies on an external driver (`mmc-pwrseq`) to reset chip. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/bus.h

[PATCH v2 18/20] staging: wfx: allow to scan networks

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/Makefile | 1 + drivers/staging/wfx/bh.c | 2 +- drivers/staging/wfx/hif_rx.c | 13 ++ drivers/staging/wfx/main.c | 5 + drivers/staging/wfx/scan.c | 249 +++ drivers/stag

[PATCH v2 05/20] staging: wfx: load firmware

2019-09-19 Thread Jerome Pouiller
From: Jérôme Pouiller A firmware is necessary to run the chip. wfx_init_device() is in charge of loading firmware on chip and doing low level initialization. Firmwares for WF200 are available here: https://github.com/SiliconLabs/wfx-firmware/ Note that firmware are encrypted. Driver checks t

  1   2   3   4   >