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 +
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(-)
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(+),
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
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
-
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
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
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
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
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é
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 +
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
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
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
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
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(
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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:
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
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
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
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
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
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
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
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/
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
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
301 - 391 of 391 matches
Mail list logo