aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSubhransu S. Prusty <subhransu.s.prusty@intel.com>2015-07-10 12:48:43 -0400
committerMark Brown <broonie@kernel.org>2015-07-16 16:46:50 -0400
commit6cb0033380ec6297589e68bfcf19aeda7ba95e99 (patch)
treebafa71d948a40360f87d8c3b86a975d31e9a1988
parent3e40a78461739d86fe1084c515ec227507ba993d (diff)
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>
-rw-r--r--sound/soc/intel/skylake/skl-sst-dsp.c5
-rw-r--r--sound/soc/intel/skylake/skl-sst-ipc.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/skl-sst-dsp.c b/sound/soc/intel/skylake/skl-sst-dsp.c
index 313ca7c6ca7f..94875b008b0b 100644
--- a/sound/soc/intel/skylake/skl-sst-dsp.c
+++ b/sound/soc/intel/skylake/skl-sst-dsp.c
@@ -267,6 +267,11 @@ irqreturn_t skl_dsp_sst_interrupt(int irq, void *dev_id)
267 result = IRQ_WAKE_THREAD; 267 result = IRQ_WAKE_THREAD;
268 } 268 }
269 269
270 if (val & SKL_ADSPIS_CL_DMA) {
271 skl_cldma_int_disable(ctx);
272 result = IRQ_WAKE_THREAD;
273 }
274
270 spin_unlock(&ctx->spinlock); 275 spin_unlock(&ctx->spinlock);
271 276
272 return result; 277 return result;
diff --git a/sound/soc/intel/skylake/skl-sst-ipc.c b/sound/soc/intel/skylake/skl-sst-ipc.c
index 94be6cbf2698..bd5ac4165151 100644
--- a/sound/soc/intel/skylake/skl-sst-ipc.c
+++ b/sound/soc/intel/skylake/skl-sst-ipc.c
@@ -375,6 +375,9 @@ irqreturn_t skl_dsp_irq_thread_handler(int irq, void *context)
375 u32 hipcie, hipct, hipcte; 375 u32 hipcie, hipct, hipcte;
376 int ipc_irq = 0; 376 int ipc_irq = 0;
377 377
378 if (dsp->intr_status & SKL_ADSPIS_CL_DMA)
379 skl_cldma_process_intr(dsp);
380
378 /* Here we handle IPC interrupts only */ 381 /* Here we handle IPC interrupts only */
379 if (!(dsp->intr_status & SKL_ADSPIS_IPC)) 382 if (!(dsp->intr_status & SKL_ADSPIS_IPC))
380 return IRQ_NONE; 383 return IRQ_NONE;