wifi: rtw89: add support for HW TKIP crypto
Ping-Ke Shih
maintainerPATCH 1/1 wifi: rtw89: add support for HW TKIP crypto
From: Kuan-Chung Chen <[email protected]>
For 8852BTE, 8852CE, and 8922AE, TKIP encryption and decryption will be handled by hardware. All other chips will retain their existing software-based encryption and decryption.
Signed-off-by Kuan-Chung Chen <[email protected]>
Signed-off-by Ping-Ke Shih <[email protected]>
--- drivers/net/wireless/realtek/rtw89/cam.c | 6 ++++++ drivers/net/wireless/realtek/rtw89/core.h | 1 + drivers/net/wireless/realtek/rtw89/mac_be.c | 4 ++-- drivers/net/wireless/realtek/rtw89/rtw8851b.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852a.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852b.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852bt.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852c.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8922a.c | 1 + 9 files changed, 15 insertions(+), 2 deletions(-)
drivers/net/wireless/realtek/rtw89/cam.c +6 -0
@@ -476,6 +476,12 @@ int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev,case WLAN_CIPHER_SUITE_WEP104 : hw_key_type =RTW89_SEC_KEY_TYPE_WEP104 ;break ; +case WLAN_CIPHER_SUITE_TKIP : +if (!chip->hw_tkip_crypto) +return -EOPNOTSUPP ; + hw_key_type =RTW89_SEC_KEY_TYPE_TKIP ; + key->flags |=IEEE80211_KEY_FLAG_GENERATE_MMIC ; +break ;case WLAN_CIPHER_SUITE_CCMP : hw_key_type =RTW89_SEC_KEY_TYPE_CCMP128 ;if (!chip->hw_mgmt_tx_encrypt)
drivers/net/wireless/realtek/rtw89/core.h +1 -0
@@ -4281,6 +4281,7 @@ struct rtw89_chip_info {bool ul_tb_pwr_diff;bool hw_sec_hdr;bool hw_mgmt_tx_encrypt; +bool hw_tkip_crypto;u8 rf_path_num;u8 tx_nss;u8 rx_nss;
drivers/net/wireless/realtek/rtw89/mac_be.c +2 -2
@@ -708,8 +708,8 @@ static int sec_eng_init_be(struct rtw89_dev *rtwdev) val32 |=B_BE_CLK_EN_CGCMP |B_BE_CLK_EN_WAPI |B_BE_CLK_EN_WEP_TKIP |B_BE_SEC_TX_ENC |B_BE_SEC_RX_DEC |B_BE_MC_DEC |B_BE_BC_DEC | -B_BE_BMC_MGNT_DEC |B_BE_UC_MGNT_DEC ; - val32 &= ~B_BE_SEC_PRE_ENQUE_TX ; +B_BE_BMC_MGNT_DEC |B_BE_UC_MGNT_DEC | +B_BE_SEC_PRE_ENQUE_TX ;rtw89_write32 (rtwdev,R_BE_SEC_ENG_CTRL , val32);rtw89_write32_set (rtwdev,R_BE_SEC_MPDU_PROC ,B_BE_APPEND_ICV |B_BE_APPEND_MIC );
drivers/net/wireless/realtek/rtw89/rtw8851b.c +1 -0
@@ -2500,6 +2500,7 @@ const struct rtw89_chip_info rtw8851b_chip_info = { .ul_tb_pwr_diff = false, .hw_sec_hdr = false, .hw_mgmt_tx_encrypt = false, + .hw_tkip_crypto = false, .rf_path_num = 1, .tx_nss = 1, .rx_nss = 1,
drivers/net/wireless/realtek/rtw89/rtw8852a.c +1 -0
@@ -2218,6 +2218,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = { .ul_tb_pwr_diff = false, .hw_sec_hdr = false, .hw_mgmt_tx_encrypt = false, + .hw_tkip_crypto = false, .rf_path_num = 2, .tx_nss = 2, .rx_nss = 2,
drivers/net/wireless/realtek/rtw89/rtw8852b.c +1 -0
@@ -854,6 +854,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = { .ul_tb_pwr_diff = false, .hw_sec_hdr = false, .hw_mgmt_tx_encrypt = false, + .hw_tkip_crypto = false, .rf_path_num = 2, .tx_nss = 2, .rx_nss = 2,
drivers/net/wireless/realtek/rtw89/rtw8852bt.c +1 -0
@@ -787,6 +787,7 @@ const struct rtw89_chip_info rtw8852bt_chip_info = { .ul_tb_pwr_diff = false, .hw_sec_hdr = false, .hw_mgmt_tx_encrypt = false, + .hw_tkip_crypto = true, .rf_path_num = 2, .tx_nss = 2, .rx_nss = 2,
drivers/net/wireless/realtek/rtw89/rtw8852c.c +1 -0
@@ -3013,6 +3013,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = { .ul_tb_pwr_diff = true, .hw_sec_hdr = true, .hw_mgmt_tx_encrypt = true, + .hw_tkip_crypto = true, .rf_path_num = 2, .tx_nss = 2, .rx_nss = 2,
drivers/net/wireless/realtek/rtw89/rtw8922a.c +1 -0
@@ -2772,6 +2772,7 @@ const struct rtw89_chip_info rtw8922a_chip_info = { .ul_tb_pwr_diff = false, .hw_sec_hdr = true, .hw_mgmt_tx_encrypt = true, + .hw_tkip_crypto = true, .rf_path_num = 2, .tx_nss = 2, .rx_nss = 2,
Signature · 1 line
2.25.1
Ping-Ke Shih
maintainerQuoted 8 lines · Ping-Ke Shih
From: Kuan-Chung Chen <[email protected]>
For 8852BTE, 8852CE, and 8922AE, TKIP encryption and decryption will be handled by hardware. All other chips will retain their existing software-based encryption and decryption.
Signed-off-by Kuan-Chung Chen <[email protected]>Signed-off-by Ping-Ke Shih <[email protected]>
1 patch(es) applied to rtw-next branch of rtw.git, thanks.
9e9877bd82a8 wifi: rtw89: add support for HW TKIP crypto