Skip to content

Commit 6bf3a08

Browse files
Chih-Kang ChangKalle Valo
authored andcommitted
wifi: rtw88: add flag check before enter or leave IPS
Enter or leave IPS controlled by mac80211 before driver support HW scan. After support HW scan, driver need to control IPS before start HW scan and scan complete, but mac80211 also ask driver enter or leave IPS. Therefore, we add flag check in IPS to prevent entering or leaving IPS twice. Signed-off-by: Chih-Kang Chang <[email protected]> Signed-off-by: Ping-Ke Shih <[email protected]> Signed-off-by: Kalle Valo <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent d08458b commit 6bf3a08

File tree

1 file changed

+5
-2
lines changed
  • drivers/net/wireless/realtek/rtw88

1 file changed

+5
-2
lines changed

drivers/net/wireless/realtek/rtw88/ps.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ static int rtw_ips_pwr_up(struct rtw_dev *rtwdev)
1919
rtw_err(rtwdev, "leave idle state failed\n");
2020

2121
rtw_set_channel(rtwdev);
22-
clear_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags);
2322

2423
return ret;
2524
}
2625

2726
int rtw_enter_ips(struct rtw_dev *rtwdev)
2827
{
29-
set_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags);
28+
if (test_and_set_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags))
29+
return 0;
3030

3131
rtw_coex_ips_notify(rtwdev, COEX_IPS_ENTER);
3232

@@ -50,6 +50,9 @@ int rtw_leave_ips(struct rtw_dev *rtwdev)
5050
{
5151
int ret;
5252

53+
if (!test_and_clear_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags))
54+
return 0;
55+
5356
rtw_hci_link_ps(rtwdev, false);
5457

5558
ret = rtw_ips_pwr_up(rtwdev);

0 commit comments

Comments
 (0)