#define rsnd_mod_confirm_dvc(mdvc)
 #endif
 
+/*
+ * If you don't need interrupt status debug message,
+ * define RSND_DEBUG_NO_IRQ_STATUS as 1 on top of src.c/ssi.c
+ *
+ * #define RSND_DEBUG_NO_IRQ_STATUS 1
+ */
+#define rsnd_dbg_irq_status(dev, param...)             \
+       if (!IS_BUILTIN(RSND_DEBUG_NO_IRQ_STATUS))      \
+               dev_dbg(dev, param)
+
 #endif
 
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
+/*
+ * you can enable below define if you don't need
+ * SSI interrupt status debug message when debugging
+ * see rsnd_dbg_irq_status()
+ *
+ * #define RSND_DEBUG_NO_IRQ_STATUS 1
+ */
+
 #include "rsnd.h"
 
 #define SRC_NAME "src"
 
 static bool rsnd_src_error_occurred(struct rsnd_mod *mod)
 {
+       struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
+       struct device *dev = rsnd_priv_to_dev(priv);
        u32 val0, val1;
+       u32 status0, status1;
        bool ret = false;
 
        val0 = val1 = OUF_SRC(rsnd_mod_id(mod));
        if (rsnd_src_sync_is_enabled(mod))
                val0 = val0 & 0xffff;
 
-       if ((rsnd_mod_read(mod, SCU_SYS_STATUS0) & val0) ||
-           (rsnd_mod_read(mod, SCU_SYS_STATUS1) & val1))
+       status0 = rsnd_mod_read(mod, SCU_SYS_STATUS0);
+       status1 = rsnd_mod_read(mod, SCU_SYS_STATUS1);
+       if ((status0 & val0) || (status1 & val1)) {
+               rsnd_dbg_irq_status(dev, "%s[%d] err status : 0x%08x, 0x%08x\n",
+                       rsnd_mod_name(mod), rsnd_mod_id(mod),
+                       status0, status1);
+
                ret = true;
+       }
 
        return ret;
 }
 
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+
+/*
+ * you can enable below define if you don't need
+ * SSI interrupt status debug message when debugging
+ * see rsnd_dbg_irq_status()
+ *
+ * #define RSND_DEBUG_NO_IRQ_STATUS 1
+ */
+
 #include <sound/simple_card_utils.h>
 #include <linux/delay.h>
 #include "rsnd.h"
                                 struct rsnd_dai_stream *io)
 {
        struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
+       struct device *dev = rsnd_priv_to_dev(priv);
        int is_dma = rsnd_ssi_is_dma_mode(mod);
        u32 status;
        bool elapsed = false;
                elapsed = rsnd_ssi_pio_interrupt(mod, io);
 
        /* DMA only */
-       if (is_dma && (status & (UIRQ | OIRQ)))
+       if (is_dma && (status & (UIRQ | OIRQ))) {
+               rsnd_dbg_irq_status(dev, "%s[%d] err status : 0x%08x\n",
+                       rsnd_mod_name(mod), rsnd_mod_id(mod), status);
+
                stop = true;
+       }
 
        rsnd_ssi_status_clear(mod);
 rsnd_ssi_interrupt_out: