rtw88: configure firmware after HCI started
authorYan-Hsuan Chuang <yhchuang@realtek.com>
Mon, 23 Sep 2019 02:47:03 +0000 (10:47 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Sep 2019 07:55:40 +0000 (10:55 +0300)
After firmware has been downloaded, driver should send
some information to it through H2C commands. Those H2C
commands are transmitted through TX path.

But before HCI has been started, the TX path is not
working completely. Such as PCI interfaces, the interrupts
are not enabled, hence TX interrupts will not be issued
after H2C skb has been DMAed to the device. And the H2C
skbs will not be released until the device is powered off.

Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtw88/mac.c
drivers/net/wireless/realtek/rtw88/main.c

index fc14b37d927d75b21f1bb6a3733c34eaffa75b9a..b61b073031e57089e1cdbc87f2d5328a149ab874 100644 (file)
@@ -707,9 +707,6 @@ int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw)
        rtwdev->h2c.last_box_num = 0;
        rtwdev->h2c.seq = 0;
 
-       rtw_fw_send_general_info(rtwdev);
-       rtw_fw_send_phydm_info(rtwdev);
-
        rtw_flag_set(rtwdev, RTW_FLAG_FW_RUNNING);
 
        return 0;
index fc8f6213fc8f25e80bae6326b609c09405bf9992..6dd457741b15dea619e6b364b78837c5e9649c35 100644 (file)
@@ -704,6 +704,10 @@ static int rtw_power_on(struct rtw_dev *rtwdev)
                goto err_off;
        }
 
+       /* send H2C after HCI has started */
+       rtw_fw_send_general_info(rtwdev);
+       rtw_fw_send_phydm_info(rtwdev);
+
        wifi_only = !rtwdev->efuse.btcoex;
        rtw_coex_power_on_setting(rtwdev);
        rtw_coex_init_hw_config(rtwdev, wifi_only);