Skip to content

Commit 6de88ea

Browse files
digetxvinodkoul
authored andcommitted
dmaengine: tegra-apb: Don't save/restore IRQ flags in interrupt handler
The interrupt is already disabled while interrupt handler is running, and thus, there is no need to save/restore the IRQ flags within the spinlock. Signed-off-by: Dmitry Osipenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
1 parent a48d44c commit 6de88ea

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

drivers/dma/tegra20-apb-dma.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -670,22 +670,21 @@ static void tegra_dma_tasklet(unsigned long data)
670670
static irqreturn_t tegra_dma_isr(int irq, void *dev_id)
671671
{
672672
struct tegra_dma_channel *tdc = dev_id;
673-
unsigned long flags;
674673
u32 status;
675674

676-
spin_lock_irqsave(&tdc->lock, flags);
675+
spin_lock(&tdc->lock);
677676

678677
trace_tegra_dma_isr(&tdc->dma_chan, irq);
679678
status = tdc_read(tdc, TEGRA_APBDMA_CHAN_STATUS);
680679
if (status & TEGRA_APBDMA_STATUS_ISE_EOC) {
681680
tdc_write(tdc, TEGRA_APBDMA_CHAN_STATUS, status);
682681
tdc->isr_handler(tdc, false);
683682
tasklet_schedule(&tdc->tasklet);
684-
spin_unlock_irqrestore(&tdc->lock, flags);
683+
spin_unlock(&tdc->lock);
685684
return IRQ_HANDLED;
686685
}
687686

688-
spin_unlock_irqrestore(&tdc->lock, flags);
687+
spin_unlock(&tdc->lock);
689688
dev_info(tdc2dev(tdc), "Interrupt already served status 0x%08x\n",
690689
status);
691690

0 commit comments

Comments
 (0)