Commit 0e15ca5f authored by Barry Song's avatar Barry Song Committed by Vinod Koul

dmaengine: pxa_dma: remove redundant irqsave and irqrestore in hardIRQ

Running in hardIRQ, disabling IRQ is redundant since hardIRQ has disabled
IRQ. This patch removes the irqsave and irqstore to save some instruction
cycles.
Signed-off-by: default avatarBarry Song <song.bao.hua@hisilicon.com>
Acked-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
Cc: Daniel Mack <daniel@zonque.org>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Link: https://lore.kernel.org/r/20201027215252.25820-11-song.bao.hua@hisilicon.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 618a8e38
...@@ -606,7 +606,6 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id) ...@@ -606,7 +606,6 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id)
struct pxad_chan *chan = phy->vchan; struct pxad_chan *chan = phy->vchan;
struct virt_dma_desc *vd, *tmp; struct virt_dma_desc *vd, *tmp;
unsigned int dcsr; unsigned int dcsr;
unsigned long flags;
bool vd_completed; bool vd_completed;
dma_cookie_t last_started = 0; dma_cookie_t last_started = 0;
...@@ -616,7 +615,7 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id) ...@@ -616,7 +615,7 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id)
if (dcsr & PXA_DCSR_RUN) if (dcsr & PXA_DCSR_RUN)
return IRQ_NONE; return IRQ_NONE;
spin_lock_irqsave(&chan->vc.lock, flags); spin_lock(&chan->vc.lock);
list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) { list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) {
vd_completed = is_desc_completed(vd); vd_completed = is_desc_completed(vd);
dev_dbg(&chan->vc.chan.dev->device, dev_dbg(&chan->vc.chan.dev->device,
...@@ -658,7 +657,7 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id) ...@@ -658,7 +657,7 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id)
pxad_launch_chan(chan, to_pxad_sw_desc(vd)); pxad_launch_chan(chan, to_pxad_sw_desc(vd));
} }
} }
spin_unlock_irqrestore(&chan->vc.lock, flags); spin_unlock(&chan->vc.lock);
wake_up(&chan->wq_state); wake_up(&chan->wq_state);
return IRQ_HANDLED; return IRQ_HANDLED;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment