aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeeja KP <jeeja.kp@intel.com>2015-10-09 04:01:49 -0400
committerMark Brown <broonie@kernel.org>2015-10-09 06:18:59 -0400
commitdef656fe22abb4fbf174a982dcef1d40274ddb11 (patch)
tree18fda2a0d4a6fe0732b737b54aa1e440230d312b
parent6ea8ba33e65d3d284de7e7373939352e2c728f10 (diff)
ASoC: Intel: Skylake: Verify the status bit before handling interrupt
Like we have in legacy mode HDA driver, we need to check the status bit and handle interrupt only when it is not zero or all bits set. We typically see the status as all 1's when controller resumes from suspend, So add the check here as well and don't handle for these cases. Signed-off-by: Jeeja KP <jeeja.kp@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
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/intel/skylake/skl-sst-dsp.c b/sound/soc/intel/skylake/skl-sst-dsp.c
index 194bd0036454..1bfb7f63b572 100644
--- a/sound/soc/intel/skylake/skl-sst-dsp.c
+++ b/sound/soc/intel/skylake/skl-sst-dsp.c
@@ -262,6 +262,11 @@ irqreturn_t skl_dsp_sst_interrupt(int irq, void *dev_id)
262 val = sst_dsp_shim_read_unlocked(ctx, SKL_ADSP_REG_ADSPIS); 262 val = sst_dsp_shim_read_unlocked(ctx, SKL_ADSP_REG_ADSPIS);
263 ctx->intr_status = val; 263 ctx->intr_status = val;
264 264
265 if (val == 0xffffffff) {
266 spin_unlock(&ctx->spinlock);
267 return IRQ_NONE;
268 }
269
265 if (val & SKL_ADSPIS_IPC) { 270 if (val & SKL_ADSPIS_IPC) {
266 skl_ipc_int_disable(ctx); 271 skl_ipc_int_disable(ctx);
267 result = IRQ_WAKE_THREAD; 272 result = IRQ_WAKE_THREAD;