wifi: wfx: implement wfx_remain_on_channel()
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Wed, 4 Oct 2023 17:28:43 +0000 (19:28 +0200)
committerKalle Valo <kvalo@kernel.org>
Mon, 9 Oct 2023 06:53:08 +0000 (09:53 +0300)
commitfc627dad3f01c98e4bd424195140b2dccf204e54
tree8e6a00fab112ed049bcb8e27dabab5ce9229f297
parentf7385a20249ea63b521554bf4bd06b3401c19a55
wifi: wfx: implement wfx_remain_on_channel()

With some conditions, the device is able to send/receive frames during
scan operation. So, it is possible to use it implement the "remain on
channel" feature. We just ask for a passive scan (without sending any
probe request) on one channel.

This architecture allows to leverage some interesting features:
  - if the device is AP, the device switches channel just after the next
    beacon and the beacons are stopped during the off-channel interval.
  - if the device is connected, it advertises it is asleep before to
    switch channel (so the AP should stop to try to send data)

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231004172843.195332-9-jerome.pouiller@silabs.com
drivers/net/wireless/silabs/wfx/main.c
drivers/net/wireless/silabs/wfx/scan.c
drivers/net/wireless/silabs/wfx/scan.h
drivers/net/wireless/silabs/wfx/sta.c
drivers/net/wireless/silabs/wfx/wfx.h