diff options
| author | Peter Åstrand <astrand@lysator.liu.se> | 2026-01-16 18:58:58 +0100 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2026-01-19 10:17:03 +0100 |
| commit | c34dbc5900b0158edaab51c481510d66679d8f72 (patch) | |
| tree | c3a9d6e01d7865a59300a7a5cdd7cd5f0431c915 | |
| parent | 0acd76b728f35b799fb4beee9853a33acb5e2888 (diff) | |
wifi: wlcore: Add support for IGTK key
This change re-applies commit 2b7aadd3b9e1 ("wlcore: Adding suppoprt for IGTK key in
wlcore driver") (sic), but only enables WLAN_CIPHER_SUITE_AES_CMAC with modern
firmware. This patch is required to support WPA3 connections.
Signed-off-by: Peter Åstrand <astrand@lysator.liu.se>
Link: https://patch.msgid.link/0d3df7ab-6c41-c3cc-83cc-5ba55fe4e4bd@lysator.liu.se
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| -rw-r--r-- | drivers/net/wireless/ti/wlcore/cmd.h | 1 | ||||
| -rw-r--r-- | drivers/net/wireless/ti/wlcore/main.c | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/cmd.h b/drivers/net/wireless/ti/wlcore/cmd.h index d16afb35f9ee..f8160f372bc7 100644 --- a/drivers/net/wireless/ti/wlcore/cmd.h +++ b/drivers/net/wireless/ti/wlcore/cmd.h @@ -455,6 +455,7 @@ enum wl1271_cmd_key_type { KEY_TKIP = 2, KEY_AES = 3, KEY_GEM = 4, + KEY_IGTK = 5, }; struct wl1271_cmd_set_keys { diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 12f0167d7380..dce79bce2e3f 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c @@ -2419,6 +2419,11 @@ power_off: strscpy(wiphy->fw_version, wl->chip.fw_ver_str, sizeof(wiphy->fw_version)); + /* WLAN_CIPHER_SUITE_AES_CMAC must be last in cipher_suites; + support only with firmware 8.9.1 and newer */ + if (wl->chip.fw_ver[FW_VER_MAJOR] < 1) + wl->hw->wiphy->n_cipher_suites--; + /* * Now we know if 11a is supported (info from the NVS), so disable * 11a channels if not supported @@ -3585,6 +3590,9 @@ int wlcore_set_key(struct wl1271 *wl, enum set_key_cmd cmd, case WL1271_CIPHER_SUITE_GEM: key_type = KEY_GEM; break; + case WLAN_CIPHER_SUITE_AES_CMAC: + key_type = KEY_IGTK; + break; default: wl1271_error("Unknown key algo 0x%x", key_conf->cipher); @@ -6196,6 +6204,7 @@ static int wl1271_init_ieee80211(struct wl1271 *wl) WLAN_CIPHER_SUITE_TKIP, WLAN_CIPHER_SUITE_CCMP, WL1271_CIPHER_SUITE_GEM, + WLAN_CIPHER_SUITE_AES_CMAC, }; /* The tx descriptor buffer */ |
