return 0;
 }
 
+#define NOTIFICATION_PARAM_ID 3
+#define NOTIFICATION_MASK 0xf
+
+/* disable notfication for underruns/overruns from firmware module */
+static void skl_dsp_enable_notification(struct skl_sst *ctx, bool enable)
+{
+       struct notification_mask mask;
+       struct skl_ipc_large_config_msg msg = {0};
+
+       mask.notify = NOTIFICATION_MASK;
+       mask.enable = enable;
+
+       msg.large_param_id = NOTIFICATION_PARAM_ID;
+       msg.param_data_size = sizeof(mask);
+
+       skl_ipc_set_large_config(&ctx->ipc, &msg, (u32 *)&mask);
+}
+
 int skl_init_dsp(struct skl *skl)
 {
        void __iomem *mmio_base;
 
        ret = skl_sst_dsp_init(bus->dev, mmio_base, irq,
                        loader_ops, &skl->skl_sst);
-
+       skl_dsp_enable_notification(skl->skl_sst, false);
        dev_dbg(bus->dev, "dsp registration status=%d\n", ret);
 
        return ret;
 int skl_resume_dsp(struct skl *skl)
 {
        struct skl_sst *ctx = skl->skl_sst;
+       int ret;
 
        /* if ppcap is not supported return 0 */
        if (!skl->ebus.ppcap)
        snd_hdac_ext_bus_ppcap_enable(&skl->ebus, true);
        snd_hdac_ext_bus_ppcap_int_enable(&skl->ebus, true);
 
-       return skl_dsp_wake(ctx->dsp);
+       ret = skl_dsp_wake(ctx->dsp);
+       if (ret < 0)
+               return ret;
+
+       skl_dsp_enable_notification(skl->skl_sst, false);
+       return ret;
 }
 
 enum skl_bitdepth skl_get_bit_depth(int params)