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.
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
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
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
-
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
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
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
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/
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
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
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.
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
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
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
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
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/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
---
.../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
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/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/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
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
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
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/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
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
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
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
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
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
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/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
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/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
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
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
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
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
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
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
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 | 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
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
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
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
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
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/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
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
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/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/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
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
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/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 | 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
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
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
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
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
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)
> > +{
> >
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
&
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
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
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
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 ++-
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:
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 +-
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
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
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 +
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
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
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
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
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
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/
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 |
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
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.
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
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
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
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
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
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
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
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
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
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 +
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
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
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/
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
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
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
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
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
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 - 100 of 391 matches
Mail list logo