diff mbox series

[3/3] wcn36xx: Enable firmware offloaded keepalive

Message ID 20201031022311.1677337-4-bryan.odonoghue@linaro.org (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series wcn36xx: Firmware link monitor/keepalive offload | expand

Commit Message

Bryan O'Donoghue Oct. 31, 2020, 2:23 a.m. UTC
This patch calls wcn36xx_smd_keep_alive_req() on the STA patch immediately
after associating with an AP.

This will cause the firmware to send a NULL packet out to the AP every 30
seconds, thus offloading keep-alive processing from the SoC to the
firmware.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/main.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Loic Poulain Oct. 31, 2020, 9:39 a.m. UTC | #1
On Sat, 31 Oct 2020 at 03:22, Bryan O'Donoghue
<bryan.odonoghue@linaro.org> wrote:
>
> This patch calls wcn36xx_smd_keep_alive_req() on the STA patch immediately
> after associating with an AP.
>
> This will cause the firmware to send a NULL packet out to the AP every 30
> seconds, thus offloading keep-alive processing from the SoC to the
> firmware.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> ---
>  drivers/net/wireless/ath/wcn36xx/main.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
> index e924cc4acde0..b514a7b952df 100644
> --- a/drivers/net/wireless/ath/wcn36xx/main.c
> +++ b/drivers/net/wireless/ath/wcn36xx/main.c
> @@ -910,6 +910,8 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
>                          * place where AID is available.
>                          */
>                         wcn36xx_smd_config_sta(wcn, vif, sta);
> +                       wcn36xx_smd_keep_alive_req(wcn, vif,
> +                                       WCN36XX_HAL_KEEP_ALIVE_NULL_PKT);

There is the wcn36xx_enable_keep_alive_null_packet function (from
pmc.c) that you can use.

>                 } else {
>                         wcn36xx_dbg(WCN36XX_DBG_MAC,
>                                     "disassociated bss %pM vif %pM AID=%d\n",
> --
> 2.28.0
>
Bryan O'Donoghue Oct. 31, 2020, 12:54 p.m. UTC | #2
On 31/10/2020 09:39, Loic Poulain wrote:
> On Sat, 31 Oct 2020 at 03:22, Bryan O'Donoghue
> <bryan.odonoghue@linaro.org> wrote:
>> +                       wcn36xx_smd_keep_alive_req(wcn, vif,
>> +                                       WCN36XX_HAL_KEEP_ALIVE_NULL_PKT);
> 
> There is the wcn36xx_enable_keep_alive_null_packet function (from
> pmc.c) that you can use.

Sure
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index e924cc4acde0..b514a7b952df 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -910,6 +910,8 @@  static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
 			 * place where AID is available.
 			 */
 			wcn36xx_smd_config_sta(wcn, vif, sta);
+			wcn36xx_smd_keep_alive_req(wcn, vif,
+					WCN36XX_HAL_KEEP_ALIVE_NULL_PKT);
 		} else {
 			wcn36xx_dbg(WCN36XX_DBG_MAC,
 				    "disassociated bss %pM vif %pM AID=%d\n",