ASoC: Intel: Remove the direct register reference from common ipc
authorSubhransu S. Prusty <subhransu.s.prusty@intel.com>
Tue, 19 May 2015 09:30:36 +0000 (15:00 +0530)
committerMark Brown <broonie@kernel.org>
Fri, 22 May 2015 18:24:26 +0000 (19:24 +0100)
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/common/sst-ipc.c

index 4b62a553823ccdb91ded137c6a4e2bf113b7dff5..a7699f35a8d24cf968afbbfd94728585d057bbc6 100644 (file)
@@ -142,7 +142,6 @@ static void ipc_tx_msgs(struct kthread_work *work)
                container_of(work, struct sst_generic_ipc, kwork);
        struct ipc_message *msg;
        unsigned long flags;
-       u64 ipcx;
 
        spin_lock_irqsave(&ipc->dsp->spinlock, flags);
 
@@ -153,8 +152,8 @@ static void ipc_tx_msgs(struct kthread_work *work)
 
        /* if the DSP is busy, we will TX messages after IRQ.
         * also postpone if we are in the middle of procesing completion irq*/
-       ipcx = sst_dsp_shim_read_unlocked(ipc->dsp, SST_IPCX);
-       if (ipcx & (SST_IPCX_BUSY | SST_IPCX_DONE)) {
+       if (ipc->ops.is_dsp_busy && ipc->ops.is_dsp_busy(ipc->dsp)) {
+               dev_dbg(ipc->dev, "ipc_tx_msgs dsp busy\n");
                spin_unlock_irqrestore(&ipc->dsp->spinlock, flags);
                return;
        }