From: "Subhransu S. Prusty" subhransu.s.prusty@intel.com
DSP handles the Code Loader DMA interrupt.
Signed-off-by: Subhransu S. Prusty subhransu.s.prusty@intel.com Signed-off-by: Vinod Koul vinod.koul@intel.com --- include/sound/soc-hda-sst-dsp.h | 1 + sound/soc/hda/intel/soc-hda-sst-dsp.c | 7 +++++++ 2 files changed, 8 insertions(+)
diff --git a/include/sound/soc-hda-sst-dsp.h b/include/sound/soc-hda-sst-dsp.h index 4549d6df2ed2..9adeb49cf126 100644 --- a/include/sound/soc-hda-sst-dsp.h +++ b/include/sound/soc-hda-sst-dsp.h @@ -261,5 +261,6 @@ int ssth_disable_dsp_core(struct ssth_lib *ctx); bool ssth_dsp_is_running(struct ssth_lib *ctx); int ssth_cl_dma_prepare(struct ssth_lib *ctx); void ssth_process_cl_dma(struct work_struct *work); +void ssth_cldma_int_disable(struct ssth_lib *ctx);
#endif /*__HDA_SST_DSP_H__*/ diff --git a/sound/soc/hda/intel/soc-hda-sst-dsp.c b/sound/soc/hda/intel/soc-hda-sst-dsp.c index 6285a6772e73..b133c63a0c20 100644 --- a/sound/soc/hda/intel/soc-hda-sst-dsp.c +++ b/sound/soc/hda/intel/soc-hda-sst-dsp.c @@ -423,6 +423,13 @@ static irqreturn_t ssth_interrupt(int irq, void *dev_id) result = IRQ_HANDLED; }
+ if (val & ADSPIS_CL_DMA) { + ssth_cldma_int_disable(ctx); + queue_work(ctx->intr_wq, &ctx->cl_dma_process_work); + result = IRQ_HANDLED; + } + + spin_unlock(&ctx->reg_lock); return result; }