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:
parent
07276d430e
commit
952dfb1b3f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user