[WCNCR00154402][BT][MT7668]suspend speed is too slow in mstar platform
CR-Id: WCNCR00154402
diff --git a/btmtk_sdio.c b/btmtk_sdio.c
index 9681557..f0f5d48 100644
--- a/btmtk_sdio.c
+++ b/btmtk_sdio.c
@@ -1997,11 +1997,34 @@
{
struct sdio_func *func = dev_to_sdio_func(dev);
u8 ret = 0;
-
+ mmc_pm_flag_t pm_flags;
ret = btmtk_sdio_set_own_back(DRIVER_OWN);
+ if(ret)
+ BTMTK_ERR("%s set driver own fail",__func__);
+
ret = btmtk_sdio_send_woble_cmd();
+ if(ret)
+ BTMTK_ERR("%s set woble cmd fail",__func__);
+
+
need_reset_stack = 1;
BTMTK_ERR("%s set reset_stack 1\n", __func__);
+ if (func) {
+ pm_flags = sdio_get_host_pm_caps(func);
+ BTMTK_DBG("%s: suspend: PM flags = 0x%x", sdio_func_id(func),
+ pm_flags);
+ if (!(pm_flags & MMC_PM_KEEP_POWER)) {
+ BTMTK_ERR("%s: cannot remain alive while suspended",
+ sdio_func_id(func));
+ return -EINVAL;
+ }
+ } else {
+ BTMTK_ERR("sdio_func is not specified");
+ return 0;
+ }
+ ret = btmtk_sdio_set_own_back(FW_OWN);
+ if(ret)
+ BTMTK_ERR("%s set fw own fail",__func__);
return sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
}
diff --git a/btmtk_sdio.h b/btmtk_sdio.h
index 2cb8ecd..ba7874d 100644
--- a/btmtk_sdio.h
+++ b/btmtk_sdio.h
@@ -19,7 +19,7 @@
*
**/
-#define VERSION "v0.0.0.24"
+#define VERSION "v0.0.0.25"
#define SDIO_HEADER_LEN 4