[PATCH v3] ath11k: Handle keepalive during WoWLAN suspend and resume
Kalle Valo
kvalo at kernel.org
Tue May 10 09:29:56 PDT 2022
Baochen Qiang <quic_bqiang at quicinc.com> writes:
> With WoWLAN enabled and after sleeping for a rather long time,
> we are seeing that with some APs, it is not able to wake up
> the STA though the correct wake up pattern has been configured.
> This is because the host doesn't send keepalive command to
> firmware, thus firmware will not send any packet to the AP and
> after a specific time the AP kicks out the STA.
>
> Fix this issue by enabling keepalive before going to suspend
> and disabling it after resume back.
>
> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
>
> Signed-off-by: Baochen Qiang <quic_bqiang at quicinc.com>
[...]
> --- a/drivers/net/wireless/ath/ath11k/wmi.h
> +++ b/drivers/net/wireless/ath/ath11k/wmi.h
> @@ -5907,6 +5907,45 @@ struct wmi_pdev_set_geo_table_cmd {
> u32 rsvd_len;
> } __packed;
>
> +struct wmi_sta_keepalive_cmd {
> + u32 tlv_header;
> + u32 vdev_id;
> + u32 enabled;
> + u32 method; /* WMI_STA_KEEPALIVE_METHOD_ */
> + u32 interval; /* in seconds */
> + /* NOTE: following this structure is the TLV for ARP Response:
> + * WMI_STA_KEEPALVE_ARP_RESPONSE arp_resp; <-- ARP response
> + */
> +} __packed;
I cleaned up the comments a bit.
> +enum wmi_sta_keepalive_method {
> + WMI_STA_KEEPALIVE_METHOD_NULL_FRAME = 1, /* 802.11 NULL frame */
> + WMI_STA_KEEPALIVE_METHOD_UNSOLICITED_ARP_RESPONSE = 2, /* ARP response */
> + WMI_STA_KEEPALIVE_METHOD_ETHERNET_LOOPBACK = 3, /* ETHERNET LOOPBACK */
> + WMI_STA_KEEPALIVE_METHOD_GRATUITOUS_ARP_REQUEST = 4, /* gratuitous ARP req */
> + WMI_STA_KEEPALIVE_METHOD_MGMT_VENDOR_ACTION = 5, /* vendor action frame */
> +};
The comments are not really bringing any extra value from the actual
names so I just removed them.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath11k
mailing list