diff options
Diffstat (limited to 'drivers/soc/qcom/bam_dmux.c')
-rw-r--r-- | drivers/soc/qcom/bam_dmux.c | 12 |
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); |