> -----Original Message----- > From: Ryan Walklin <ryan@xxxxxxxxxxxxx> > Sent: Wednesday, March 13, 2024 6:43 AM > To: Ping-Ke Shih <pkshih@xxxxxxxxxxx>; linux-wireless@xxxxxxxxxxxxxxx > Cc: linux-sunxi@xxxxxxxxxxxxxxx > Subject: [BUG] RTL8821CS panic on entering power-save mode > > Hi, > > I have an Allwinner-H700-based platform (Anbernic RG35XX+) which I am working on mainline u-boot/kernel > support for. The RGL8821CS chip on this board works when configured with a 32MHz clock and 3.3v VCC and > the RTW88 kernel driver, > Did the extensive logging of LPS state happen always? Or happen after a while? Try module parameter rtw_disable_lps_deep_mode=1 to see if it works well. The IO of SDIO is slower than PCIE, so maybe we can try to enlarge timeout time in rtw_power_mode_change(): diff --git a/drivers/net/wireless/realtek/rtw88/ps.c b/drivers/net/wireless/realtek/rtw88/ps.c index add5a20b8432..d959e3ebba07 100644 --- a/drivers/net/wireless/realtek/rtw88/ps.c +++ b/drivers/net/wireless/realtek/rtw88/ps.c @@ -92,7 +92,7 @@ void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter) /* Check firmware get the power requset and ack via cpwm register */ ret = read_poll_timeout_atomic(rtw_read8, polling, (polling ^ confirm) & BIT_RPWM_TOGGLE, - 100, 15000, true, rtwdev, + 100, 15000 * 100, true, rtwdev, rtwdev->hci.cpwm_addr); if (ret) { /* Hit here means that driver failed to get an ack from firmware. > however the BT is unstable with extensive logging about LPS state entry failures, > and the driver will eventually crash with the following: Not sure why this could lead crash, because it is only a warning. Anyway, please try above suggestions. Ping-Ke