فهرست منبع

ASoC: Intel: Skylake: Process code loader DMA interrupt

The code loader DMA interrupt is received by main interrupt handler which
dispatches it to cldma routines

Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Subhransu S. Prusty 10 سال پیش
والد
کامیت
6cb0033380
2فایلهای تغییر یافته به همراه8 افزوده شده و 0 حذف شده
  1. 5 0
      sound/soc/intel/skylake/skl-sst-dsp.c
  2. 3 0
      sound/soc/intel/skylake/skl-sst-ipc.c

+ 5 - 0
sound/soc/intel/skylake/skl-sst-dsp.c

@@ -267,6 +267,11 @@ irqreturn_t skl_dsp_sst_interrupt(int irq, void *dev_id)
 		result = IRQ_WAKE_THREAD;
 	}
 
+	if (val & SKL_ADSPIS_CL_DMA) {
+		skl_cldma_int_disable(ctx);
+		result = IRQ_WAKE_THREAD;
+	}
+
 	spin_unlock(&ctx->spinlock);
 
 	return result;

+ 3 - 0
sound/soc/intel/skylake/skl-sst-ipc.c

@@ -375,6 +375,9 @@ irqreturn_t skl_dsp_irq_thread_handler(int irq, void *context)
 	u32 hipcie, hipct, hipcte;
 	int ipc_irq = 0;
 
+	if (dsp->intr_status & SKL_ADSPIS_CL_DMA)
+		skl_cldma_process_intr(dsp);
+
 	/* Here we handle IPC interrupts only */
 	if (!(dsp->intr_status & SKL_ADSPIS_IPC))
 		return IRQ_NONE;