| From 7a10372137f8e7bfd9f02cb940465c1b7050882a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 30 Jun 2025 23:43:25 +0300 |
| Subject: wifi: rtw89: Disable deep power saving for USB/SDIO |
| |
| From: Bitterblue Smith <rtl8821cerfe2@gmail.com> |
| |
| [ Upstream commit a3b871a0f7c083c2a632a31da8bc3de554ae8550 ] |
| |
| Disable deep power saving for USB and SDIO because rtw89_mac_send_rpwm() |
| is called in atomic context and accessing hardware registers results in |
| "scheduling while atomic" errors. |
| |
| Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> |
| Acked-by: Ping-Ke Shih <pkshih@realtek.com> |
| Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> |
| Link: https://patch.msgid.link/0f49eceb-0de0-47e2-ba36-3c6a0dddd17d@gmail.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/realtek/rtw89/core.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c |
| index c886dd2a73b4..894ab7ab94cc 100644 |
| --- a/drivers/net/wireless/realtek/rtw89/core.c |
| +++ b/drivers/net/wireless/realtek/rtw89/core.c |
| @@ -2839,6 +2839,9 @@ static enum rtw89_ps_mode rtw89_update_ps_mode(struct rtw89_dev *rtwdev) |
| { |
| const struct rtw89_chip_info *chip = rtwdev->chip; |
| |
| + if (rtwdev->hci.type != RTW89_HCI_TYPE_PCIE) |
| + return RTW89_PS_MODE_NONE; |
| + |
| if (rtw89_disable_ps_mode || !chip->ps_mode_supported || |
| RTW89_CHK_FW_FEATURE(NO_DEEP_PS, &rtwdev->fw)) |
| return RTW89_PS_MODE_NONE; |
| -- |
| 2.39.5 |
| |