Commit 618a8e38 authored by Barry Song's avatar Barry Song Committed by Vinod Koul
Browse files

dmaengine: ste_dma40: 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>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20201027215252.25820-10-song.bao.hua@hisilicon.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 8c94b83e
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1643,13 +1643,12 @@ static irqreturn_t d40_handle_interrupt(int irq, void *data)
	u32 row;
	long chan = -1;
	struct d40_chan *d40c;
	unsigned long flags;
	struct d40_base *base = data;
	u32 *regs = base->regs_interrupt;
	struct d40_interrupt_lookup *il = base->gen_dmac.il;
	u32 il_size = base->gen_dmac.il_size;

	spin_lock_irqsave(&base->interrupt_lock, flags);
	spin_lock(&base->interrupt_lock);

	/* Read interrupt status of both logical and physical channels */
	for (i = 0; i < il_size; i++)
@@ -1694,7 +1693,7 @@ static irqreturn_t d40_handle_interrupt(int irq, void *data)
		spin_unlock(&d40c->lock);
	}

	spin_unlock_irqrestore(&base->interrupt_lock, flags);
	spin_unlock(&base->interrupt_lock);

	return IRQ_HANDLED;
}