diff options
Diffstat (limited to 'arch/arm/mach-omap2/mailbox.c')
| -rw-r--r-- | arch/arm/mach-omap2/mailbox.c | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 394413dc7deb..24b88504df0f 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -193,10 +193,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, @@ -334,7 +336,7 @@ static struct omap_mbox mbox_iva_info = {  	.priv	= &omap2_mbox_iva_priv,  }; -struct omap_mbox *omap2_mboxes[] = { &mbox_iva_info, &mbox_dsp_info, NULL }; +struct omap_mbox *omap2_mboxes[] = { &mbox_dsp_info, &mbox_iva_info, NULL };  #endif  #if defined(CONFIG_ARCH_OMAP4) | 
