aboutsummaryrefslogtreecommitdiff
path: root/drivers/soc/qcom/bam_dmux.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/soc/qcom/bam_dmux.c')
-rw-r--r--drivers/soc/qcom/bam_dmux.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/soc/qcom/bam_dmux.c b/drivers/soc/qcom/bam_dmux.c
index 3b75e744a5ec..84e51931cbac 100644
--- a/drivers/soc/qcom/bam_dmux.c
+++ b/drivers/soc/qcom/bam_dmux.c
@@ -1099,6 +1099,12 @@ int msm_bam_dmux_open(uint32_t id, void *priv,
kfree(hdr);
return -ENODEV;
}
+ if (in_global_reset) {
+ BAM_DMUX_LOG("%s: In SSR... ch_id[%d]\n", __func__, id);
+ spin_unlock_irqrestore(&bam_ch[id].lock, flags);
+ kfree(hdr);
+ return -ENODEV;
+ }
bam_ch[id].notify = notify;
bam_ch[id].priv = priv;
@@ -1177,6 +1183,12 @@ int msm_bam_dmux_close(uint32_t id)
return 0;
}
+ if (in_global_reset) {
+ BAM_DMUX_LOG("%s: In SSR... ch_id[%d]\n", __func__, id);
+ read_unlock(&ul_wakeup_lock);
+ return 0;
+ }
+
hdr = kmalloc(sizeof(struct bam_mux_hdr), GFP_ATOMIC);
if (hdr == NULL) {
read_unlock(&ul_wakeup_lock);