diff mbox series

[rtw-next] wifi: rtw89: leave idle mode when setting WEP encryption for AP mode

Message ID 20250507031203.8256-1-pkshih@realtek.com
State New
Headers show
Series [rtw-next] wifi: rtw89: leave idle mode when setting WEP encryption for AP mode | expand

Commit Message

Ping-Ke Shih May 7, 2025, 3:12 a.m. UTC
From: Dian-Syuan Yang <dian_syuan0116@realtek.com>

Due to mac80211 triggering the hardware to enter idle mode, it fails
to install WEP key causing connected station can't ping successfully.
Currently, it forces the hardware to leave idle mode before driver
adding WEP keys.

Signed-off-by: Dian-Syuan Yang <dian_syuan0116@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw89/cam.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Ping-Ke Shih May 16, 2025, 12:30 a.m. UTC | #1
Ping-Ke Shih <pkshih@realtek.com> wrote:

> From: Dian-Syuan Yang <dian_syuan0116@realtek.com>
> 
> Due to mac80211 triggering the hardware to enter idle mode, it fails
> to install WEP key causing connected station can't ping successfully.
> Currently, it forces the hardware to leave idle mode before driver
> adding WEP keys.
> 
> Signed-off-by: Dian-Syuan Yang <dian_syuan0116@realtek.com>
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>

1 patch(es) applied to rtw-next branch of rtw.git, thanks.

d105652b3324 wifi: rtw89: leave idle mode when setting WEP encryption for AP mode

---
https://github.com/pkshih/rtw.git
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw89/cam.c b/drivers/net/wireless/realtek/rtw89/cam.c
index 34316e64b777..385a238fe5cc 100644
--- a/drivers/net/wireless/realtek/rtw89/cam.c
+++ b/drivers/net/wireless/realtek/rtw89/cam.c
@@ -6,6 +6,7 @@ 
 #include "debug.h"
 #include "fw.h"
 #include "mac.h"
+#include "ps.h"
 
 static struct sk_buff *
 rtw89_cam_get_sec_key_cmd(struct rtw89_dev *rtwdev,
@@ -475,9 +476,11 @@  int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev,
 
 	switch (key->cipher) {
 	case WLAN_CIPHER_SUITE_WEP40:
+		rtw89_leave_ips_by_hwflags(rtwdev);
 		hw_key_type = RTW89_SEC_KEY_TYPE_WEP40;
 		break;
 	case WLAN_CIPHER_SUITE_WEP104:
+		rtw89_leave_ips_by_hwflags(rtwdev);
 		hw_key_type = RTW89_SEC_KEY_TYPE_WEP104;
 		break;
 	case WLAN_CIPHER_SUITE_TKIP: