From 1f448a86a96a5046a23836b200a5a7613637ef21 Mon Sep 17 00:00:00 2001 From: Owen Huang Date: Mon, 24 Feb 2025 01:52:29 -0600 Subject: [PATCH 06/25] brcmfmac: offload: indicate GTK rekey support from FW cap Originally, GTK rekey offload and rekey failure detect are combined to one feature, and depend on OTP. But customer might only need GTK rekey offload, so deparate to two features. Fixes SWWLAN-152608 Signed-off-by: Owen Huang --- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 12 +++++++++--- .../wireless/broadcom/brcm80211/brcmfmac/feature.c | 1 + .../wireless/broadcom/brcm80211/brcmfmac/feature.h | 6 ++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index fbee13459ce7..a6ffdaa2e82b 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -9869,10 +9869,14 @@ static void brcmf_wiphy_wowl_params(struct wiphy *wiphy, struct brcmf_if *ifp) init_waitqueue_head(&cfg->wowl.nd_data_wait); } } - if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK)) { + + /* for backward compatibility, retain BRCMF_FEAT_WOWL_GTK */ + if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK) || + brcmf_feat_is_enabled(ifp, BRCMF_FEAT_GTKO)) wowl->flags |= WIPHY_WOWLAN_SUPPORTS_GTK_REKEY; + + if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK)) wowl->flags |= WIPHY_WOWLAN_GTK_REKEY_FAILURE; - } wiphy->wowlan = wowl; @@ -10766,7 +10770,9 @@ struct brcmf_cfg80211_info *brcmf_cfg80211_attach(struct brcmf_pub *drvr, *cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; } #ifdef CONFIG_PM - if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK)) + /* for backward compatibility, retain BRCMF_FEAT_WOWL_GTK */ + if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK) || + brcmf_feat_is_enabled(ifp, BRCMF_FEAT_GTKO)) ops->set_rekey_data = brcmf_cfg80211_set_rekey_data; #endif if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_DUMP_OBSS)) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c index ab48288afa19..2798bf16ee35 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c @@ -52,6 +52,7 @@ static const struct brcmf_feat_fwcap brcmf_fwcap_map[] = { { BRCMF_FEAT_ULP, "ulp" }, { BRCMF_FEAT_PROPTXSTATUS, "proptxstatus" }, { BRCMF_FEAT_OWE, "owe" }, + { BRCMF_FEAT_GTKO, "gtko" }, }; #ifdef DEBUG diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h index aa6921134de9..54e0f7878d86 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h @@ -17,7 +17,7 @@ * TDLS: Tunneled Direct Link Setup * SCAN_RANDOM_MAC: Random MAC during (net detect) scheduled scan. * WOWL_ND: WOWL net detect (PNO) - * WOWL_GTK: (WOWL) GTK rekeying offload + * WOWL_GTK: WOWL GTK rekey failure detect * WOWL_ARP_ND: ARP and Neighbor Discovery offload support during WOWL. * MFP: 802.11w Management Frame Protection. * GSCAN: enhanced scan offload feature. @@ -39,6 +39,7 @@ * ARP, ND, etc and send out a suitable response packet from within * Firmware. * ULP: Firmware supports Ultra Low Power mode of operation. + * GTKO: GTK rekey offload. */ #define BRCMF_FEAT_LIST \ BRCMF_FEAT_DEF(MBSS) \ @@ -72,7 +73,8 @@ BRCMF_FEAT_DEF(OFFLOADS) \ BRCMF_FEAT_DEF(ULP) \ BRCMF_FEAT_DEF(PROPTXSTATUS) \ - BRCMF_FEAT_DEF(OWE) + BRCMF_FEAT_DEF(OWE) \ + BRCMF_FEAT_DEF(GTKO) /* * Quirks: -- 2.25.0