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

dmaengine: ti: k3-udma: 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 avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20201027215252.25820-3-song.bao.hua@hisilicon.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent f3b10249
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -1020,13 +1020,12 @@ static irqreturn_t udma_ring_irq_handler(int irq, void *data)
{
	struct udma_chan *uc = data;
	struct udma_desc *d;
	unsigned long flags;
	dma_addr_t paddr = 0;

	if (udma_pop_from_ring(uc, &paddr) || !paddr)
		return IRQ_HANDLED;

	spin_lock_irqsave(&uc->vc.lock, flags);
	spin_lock(&uc->vc.lock);

	/* Teardown completion message */
	if (cppi5_desc_is_tdcm(paddr)) {
@@ -1077,7 +1076,7 @@ static irqreturn_t udma_ring_irq_handler(int irq, void *data)
		}
	}
out:
	spin_unlock_irqrestore(&uc->vc.lock, flags);
	spin_unlock(&uc->vc.lock);

	return IRQ_HANDLED;
}
@@ -1086,9 +1085,8 @@ static irqreturn_t udma_udma_irq_handler(int irq, void *data)
{
	struct udma_chan *uc = data;
	struct udma_desc *d;
	unsigned long flags;

	spin_lock_irqsave(&uc->vc.lock, flags);
	spin_lock(&uc->vc.lock);
	d = uc->desc;
	if (d) {
		d->tr_idx = (d->tr_idx + 1) % d->sglen;
@@ -1103,7 +1101,7 @@ static irqreturn_t udma_udma_irq_handler(int irq, void *data)
		}
	}

	spin_unlock_irqrestore(&uc->vc.lock, flags);
	spin_unlock(&uc->vc.lock);

	return IRQ_HANDLED;
}