mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
* sunxi-5.18: add new megous patches * switch to v5.18.5: exclude a previously applied patch * fix: tools/mk_format_patch: numbered=false by default * sunxi-5.18: rebasing and extraction using the mk_format_patch script
56 lines
2.0 KiB
Diff
56 lines
2.0 KiB
Diff
From aefea50eb72f44ab41be7fcbbef57b38455a1686 Mon Sep 17 00:00:00 2001
|
|
From: Ping-Ke Shih <pkshih@realtek.com>
|
|
Date: Thu, 21 Apr 2022 20:08:57 +0800
|
|
Subject: [PATCH 472/534] rtw89: don't flush hci queues and send h2c if power
|
|
is off
|
|
|
|
When disconnecting, it warns somethings after power is off, and we can't
|
|
do HCI IO. So, add this patch to avoid below messages:
|
|
|
|
rtw89_8852ce 0000:03:00.0: timed out to flush pci txch: 11
|
|
rtw89_8852ce 0000:03:00.0: failed to pre-release fwcmd
|
|
|
|
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://lore.kernel.org/r/20220421120903.73715-9-pkshih@realtek.com
|
|
---
|
|
drivers/net/wireless/realtek/rtw89/core.c | 7 +++++++
|
|
drivers/net/wireless/realtek/rtw89/core.h | 3 +++
|
|
2 files changed, 10 insertions(+)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
|
|
index e2f8551ed..440413e00 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/core.c
|
|
+++ b/drivers/net/wireless/realtek/rtw89/core.c
|
|
@@ -856,6 +856,13 @@ int rtw89_h2c_tx(struct rtw89_dev *rtwdev,
|
|
u32 cnt;
|
|
int ret;
|
|
|
|
+ if (!test_bit(RTW89_FLAG_POWERON, rtwdev->flags)) {
|
|
+ rtw89_debug(rtwdev, RTW89_DBG_FW,
|
|
+ "ignore h2c due to power is off with firmware state=%d\n",
|
|
+ test_bit(RTW89_FLAG_FW_RDY, rtwdev->flags));
|
|
+ return 0;
|
|
+ }
|
|
+
|
|
tx_req.skb = skb;
|
|
tx_req.tx_type = RTW89_CORE_TX_TYPE_FWCMD;
|
|
if (fwdl)
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
|
|
index 75c458fba..bc54463e9 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/core.h
|
|
+++ b/drivers/net/wireless/realtek/rtw89/core.h
|
|
@@ -3200,6 +3200,9 @@ static inline void rtw89_hci_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch)
|
|
static inline void rtw89_hci_flush_queues(struct rtw89_dev *rtwdev, u32 queues,
|
|
bool drop)
|
|
{
|
|
+ if (!test_bit(RTW89_FLAG_POWERON, rtwdev->flags))
|
|
+ return;
|
|
+
|
|
if (rtwdev->hci.ops->flush_queues)
|
|
return rtwdev->hci.ops->flush_queues(rtwdev, queues, drop);
|
|
}
|
|
--
|
|
2.35.3
|
|
|