summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c b/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c
index 0174a606e93d..d62138b09dd8 100644
--- a/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c
+++ b/CORE/SERVICES/HIF/sdio/linux/native_sdio/src/hif.c
@@ -2895,16 +2895,25 @@ static void hif_sdio_device_removed(struct sdio_func *func)
static int hif_sdio_device_reinit(struct sdio_func *func, const struct sdio_device_id * id)
{
+ int ret;
+
if (vos_is_load_unload_in_progress(VOS_MODULE_ID_HIF, NULL) &&
!vos_is_logp_in_progress(VOS_MODULE_ID_VOSS, NULL)) {
printk("%s: Load/unload is in progress and SSR is not,"
"ignore SSR reinit...\n", __func__);
return 0;
}
- if ((func != NULL) && (id != NULL))
- return hifDeviceInserted(func, id);
- else
+
+ if ((func != NULL) && (id != NULL)) {
+ vos_request_pm_qos_type(PM_QOS_CPU_DMA_LATENCY,
+ DISABLE_KRAIT_IDLE_PS_VAL);
+ ret = hifDeviceInserted(func, id);
+ vos_remove_pm_qos();
+
+ return ret;
+ } else {
printk("%s: Invalid sdio func and device id. Card removed?\n", __func__);
+ }
return -ENODEV;
}