drm/msm/sde: Remove redundant write memory barriers from IRQ routines

Explicit write memory barriers are unneeded here since releasing a lock
already implies a full memory barrier.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
This commit is contained in:
Sultan Alsawaf 2021-02-16 21:58:37 -08:00 committed by spakkkk
parent 07276d430e
commit 952dfb1b3f

View File

@ -649,8 +649,9 @@ static void sde_hw_intr_dispatch_irq(struct sde_hw_intr *intr,
if (cbfunc)
cbfunc(arg, irq_idx);
else
intr->ops.clear_intr_status_nolock(
intr, irq_idx);
SDE_REG_WRITE(&intr->hw,
intr->sde_irq_tbl[reg_idx].clr_off,
intr->sde_irq_map[irq_idx].irq_mask);
/*
* When callback finish, clear the irq_status
@ -701,9 +702,6 @@ static int sde_hw_intr_enable_irq_nolock(struct sde_hw_intr *intr, int irq_idx)
/* Enabling interrupts with the new mask */
SDE_REG_WRITE(&intr->hw, reg->en_off, cache_irq_mask);
/* ensure register write goes through */
wmb();
intr->cache_irq_mask[reg_idx] = cache_irq_mask;
}
@ -875,12 +873,20 @@ static void sde_hw_intr_clear_interrupt_status(struct sde_hw_intr *intr,
int irq_idx)
{
unsigned long irq_flags;
int reg_idx;
if (!intr)
return;
reg_idx = intr->sde_irq_map[irq_idx].reg_idx;
if (reg_idx < 0 || reg_idx > intr->sde_irq_size) {
pr_err("invalid irq reg:%d irq:%d\n", reg_idx, irq_idx);
return;
}
spin_lock_irqsave(&intr->irq_lock, irq_flags);
sde_hw_intr_clear_intr_status_nolock(intr, irq_idx);
SDE_REG_WRITE(&intr->hw, intr->sde_irq_tbl[reg_idx].clr_off,
intr->sde_irq_map[irq_idx].irq_mask);
spin_unlock_irqrestore(&intr->irq_lock, irq_flags);
}
@ -947,9 +953,6 @@ static u32 sde_hw_intr_get_interrupt_status(struct sde_hw_intr *intr,
SDE_REG_WRITE(&intr->hw, intr->sde_irq_tbl[reg_idx].clr_off,
intr_status);
/* ensure register writes go through */
wmb();
spin_unlock_irqrestore(&intr->irq_lock, irq_flags);
return intr_status;