2023-02-24 08:22:18

by Ping-Ke Shih

[permalink] [raw]
Subject: [PATCH] wifi: rtw89: fix SER L1 might stop entering LPS issue

From: Chih-Kang Chang <[email protected]>

When SER L1 triggered, driver need to stop Rx and clear RTW89_FLAG_RUNNING
flag. If track_work check RTW89_FLAG_RUNNING simultaneously, it will check
failed and never queue track_work again, and LPS won't enter either.
Therefore, we cancel delayed work when enter SER L1, and queue delayed work
when leave SER L1.

Signed-off-by: Chih-Kang Chang <[email protected]>
Signed-off-by: Ping-Ke Shih <[email protected]>
---
drivers/net/wireless/realtek/rtw89/ser.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw89/ser.c b/drivers/net/wireless/realtek/rtw89/ser.c
index 61db7189fdab8..9e9f6947e7f14 100644
--- a/drivers/net/wireless/realtek/rtw89/ser.c
+++ b/drivers/net/wireless/realtek/rtw89/ser.c
@@ -414,8 +414,11 @@ static void ser_idle_st_hdl(struct rtw89_ser *ser, u8 evt)

static void ser_reset_trx_st_hdl(struct rtw89_ser *ser, u8 evt)
{
+ struct rtw89_dev *rtwdev = container_of(ser, struct rtw89_dev, ser);
+
switch (evt) {
case SER_EV_STATE_IN:
+ cancel_delayed_work_sync(&rtwdev->track_work);
drv_stop_tx(ser);

if (hal_stop_dma(ser)) {
@@ -446,6 +449,8 @@ static void ser_reset_trx_st_hdl(struct rtw89_ser *ser, u8 evt)
hal_enable_dma(ser);
drv_resume_rx(ser);
drv_resume_tx(ser);
+ ieee80211_queue_delayed_work(rtwdev->hw, &rtwdev->track_work,
+ RTW89_TRACK_WORK_PERIOD);
break;

default:
--
2.25.1



2023-03-06 10:08:32

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] wifi: rtw89: fix SER L1 might stop entering LPS issue

Ping-Ke Shih <[email protected]> wrote:

> From: Chih-Kang Chang <[email protected]>
>
> When SER L1 triggered, driver need to stop Rx and clear RTW89_FLAG_RUNNING
> flag. If track_work check RTW89_FLAG_RUNNING simultaneously, it will check
> failed and never queue track_work again, and LPS won't enter either.
> Therefore, we cancel delayed work when enter SER L1, and queue delayed work
> when leave SER L1.
>
> Signed-off-by: Chih-Kang Chang <[email protected]>
> Signed-off-by: Ping-Ke Shih <[email protected]>

Patch applied to wireless-next.git, thanks.

5c48f9432d06 wifi: rtw89: fix SER L1 might stop entering LPS issue

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches