diff options
Diffstat (limited to 'arch/arm/mach-omap2/mailbox.c')
| -rw-r--r-- | arch/arm/mach-omap2/mailbox.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 6e15e3d7c65..86d564a640b 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -138,10 +138,12 @@ static void omap2_mbox_disable_irq(struct omap_mbox *mbox,  		omap_mbox_type_t irq)  {  	struct omap_mbox2_priv *p = mbox->priv; -	u32 l, bit = (irq == IRQ_TX) ? p->notfull_bit : p->newmsg_bit; -	l = mbox_read_reg(p->irqdisable); -	l &= ~bit; -	mbox_write_reg(l, p->irqdisable); +	u32 bit = (irq == IRQ_TX) ? p->notfull_bit : p->newmsg_bit; + +	if (!cpu_is_omap44xx()) +		bit = mbox_read_reg(p->irqdisable) & ~bit; + +	mbox_write_reg(bit, p->irqdisable);  }  static void omap2_mbox_ack_irq(struct omap_mbox *mbox,  |