[WCNCR00156115][MT7668S][Bluez]Driver crash after FW crash and user remove driver
[Description]
Fix Driver crash after FW crash and user remove driver and a2dp unpair fail issue.
CR-Id: WCNCR00156115
diff --git a/btmtk_main.c b/btmtk_main.c
index 4d5c398..bf659d8 100644
--- a/btmtk_main.c
+++ b/btmtk_main.c
@@ -361,7 +361,10 @@
BTMTK_INFO("%s stop main_thread\n", __func__);
- kthread_stop(priv->main_thread.task);
+
+ if(!PTR_ERR(priv->main_thread.task))
+ kthread_stop(priv->main_thread.task);
+
BTMTK_INFO("%s stop main_thread done\n", __func__);
#ifdef CONFIG_DEBUG_FS
/*btmtk_debugfs_remove(hdev);*/
diff --git a/btmtk_sdio.c b/btmtk_sdio.c
index d8a5b2e..ab81b8d 100644
--- a/btmtk_sdio.c
+++ b/btmtk_sdio.c
@@ -1457,7 +1457,7 @@
ret = btmtk_sdio_readl(CHISR, &u32ReadCRValue);
BTMTK_DBG("%s check TX_EMPTY CHISR 0x%08x\n", __func__, u32ReadCRValue);
if (TX_EMPTY&u32ReadCRValue) {
- ret = btmtk_sdio_writel(CHISR, TX_EMPTY);
+ ret = btmtk_sdio_writel(CHISR, (TX_EMPTY | TX_COMPLETE_COUNT));
priv->btmtk_dev.tx_dnld_rdy = true;
BTMTK_DBG("%s set tx_dnld_rdy 1\n", __func__);
}
diff --git a/btmtk_sdio.h b/btmtk_sdio.h
index 0ba8959..0eb02a0 100644
--- a/btmtk_sdio.h
+++ b/btmtk_sdio.h
@@ -19,7 +19,7 @@
*
**/
-#define VERSION "v0.0.0.26"
+#define VERSION "v0.0.0.27"
#define SDIO_HEADER_LEN 4