diff mbox

[RFC,8/9] ASoC: hda: Add for CL DMA interrupt handling

Message ID 1429276567-29007-9-git-send-email-vinod.koul@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vinod Koul April 17, 2015, 1:16 p.m. UTC
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(+)

Comments

Mark Brown April 24, 2015, 5:30 p.m. UTC | #1
On Fri, Apr 17, 2015 at 06:46:06PM +0530, Vinod Koul wrote:
> From: "Subhransu S. Prusty" <subhransu.s.prusty@intel.com>
> 
> DSP handles the Code Loader DMA interrupt.

Could this be squashed in with the thing that adds the work so we see
the whole picture at once please?
Vinod Koul April 26, 2015, 2:28 p.m. UTC | #2
On Fri, Apr 24, 2015 at 06:30:11PM +0100, Mark Brown wrote:
> On Fri, Apr 17, 2015 at 06:46:06PM +0530, Vinod Koul wrote:
> > From: "Subhransu S. Prusty" <subhransu.s.prusty@intel.com>
> > 
> > DSP handles the Code Loader DMA interrupt.
> 
> Could this be squashed in with the thing that adds the work so we see
> the whole picture at once please?
Sure...

Thanks
diff mbox

Patch

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;
 }