wifi: rtw89: 8922a: use SW CRYPTO when broadcast in MLO mode

8922A doesn't support broadcast/multicast traffic under MLO mode.
So let mac80211 do the encryption/decryption for us when the
connection is in MLO mode. Future BE ICs fixes this issue.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250428112456.13165-3-pkshih@realtek.com
This commit is contained in:
Po-Hao Huang 2025-04-28 19:24:48 +08:00 committed by Ping-Ke Shih
parent b47e250e59
commit 3725597881
8 changed files with 11 additions and 0 deletions

View File

@ -469,6 +469,10 @@ int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev,
bool ext_key = false;
int ret;
if (ieee80211_vif_is_mld(vif) && !chip->hw_mlo_bmc_crypto &&
!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
return -EOPNOTSUPP;
switch (key->cipher) {
case WLAN_CIPHER_SUITE_WEP40:
hw_key_type = RTW89_SEC_KEY_TYPE_WEP40;

View File

@ -4292,6 +4292,7 @@ struct rtw89_chip_info {
bool hw_sec_hdr;
bool hw_mgmt_tx_encrypt;
bool hw_tkip_crypto;
bool hw_mlo_bmc_crypto;
u8 rf_path_num;
u8 tx_nss;
u8 rx_nss;

View File

@ -2506,6 +2506,7 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
.hw_sec_hdr = false,
.hw_mgmt_tx_encrypt = false,
.hw_tkip_crypto = false,
.hw_mlo_bmc_crypto = false,
.rf_path_num = 1,
.tx_nss = 1,
.rx_nss = 1,

View File

@ -2224,6 +2224,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
.hw_sec_hdr = false,
.hw_mgmt_tx_encrypt = false,
.hw_tkip_crypto = false,
.hw_mlo_bmc_crypto = false,
.rf_path_num = 2,
.tx_nss = 2,
.rx_nss = 2,

View File

@ -860,6 +860,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
.hw_sec_hdr = false,
.hw_mgmt_tx_encrypt = false,
.hw_tkip_crypto = false,
.hw_mlo_bmc_crypto = false,
.rf_path_num = 2,
.tx_nss = 2,
.rx_nss = 2,

View File

@ -793,6 +793,7 @@ const struct rtw89_chip_info rtw8852bt_chip_info = {
.hw_sec_hdr = false,
.hw_mgmt_tx_encrypt = false,
.hw_tkip_crypto = true,
.hw_mlo_bmc_crypto = false,
.rf_path_num = 2,
.tx_nss = 2,
.rx_nss = 2,

View File

@ -3047,6 +3047,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
.hw_sec_hdr = true,
.hw_mgmt_tx_encrypt = true,
.hw_tkip_crypto = true,
.hw_mlo_bmc_crypto = false,
.rf_path_num = 2,
.tx_nss = 2,
.rx_nss = 2,

View File

@ -2858,6 +2858,7 @@ const struct rtw89_chip_info rtw8922a_chip_info = {
.hw_sec_hdr = true,
.hw_mgmt_tx_encrypt = true,
.hw_tkip_crypto = true,
.hw_mlo_bmc_crypto = false,
.rf_path_num = 2,
.tx_nss = 2,
.rx_nss = 2,