]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rtw89: don't flush hci queues and send h2c if power is off
authorPing-Ke Shih <pkshih@realtek.com>
Thu, 21 Apr 2022 12:08:57 +0000 (20:08 +0800)
committerKalle Valo <kvalo@kernel.org>
Sun, 24 Apr 2022 11:30:35 +0000 (14:30 +0300)
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
drivers/net/wireless/realtek/rtw89/core.h

index 796b205854ac684457299ad48a859286b4714d8b..e3317deafa1d05a36d946d0f4c5e0129d91d1df4 100644 (file)
@@ -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)
index 27a3ceda90b9085639d98a99d4692101372424c6..6ca915cb7a29fceff564c11935bfa0cc4c9653a7 100644 (file)
@@ -3199,6 +3199,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);
 }