From: Toshihiro Kobayashi Date: Sat, 11 Nov 2006 00:07:22 +0000 (+0200) Subject: ARM: OMAP: Fix for mailbox-omap1 X-Git-Tag: v2.6.19-omap1~57 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=37bab32883926a766d445805a60fee8fb443dbfc;p=linux-2.6-omap-h63xx.git ARM: OMAP: Fix for mailbox-omap1 Fix for omap1 mailbox driver. This will enable DSP Gateway again. Signed-off-by: Toshihiro Kobayashi --- diff --git a/arch/arm/mach-omap1/mailbox.c b/arch/arm/mach-omap1/mailbox.c index e13382fa0ca..ed59f968825 100644 --- a/arch/arm/mach-omap1/mailbox.c +++ b/arch/arm/mach-omap1/mailbox.c @@ -67,7 +67,7 @@ static inline void omap1_mbox_fifo_write(struct omap_mbox *mbox, mbox_msg_t msg) { struct omap_mbox1_fifo *fifo = - &((struct omap_mbox1_priv *)mbox->priv)->rx_fifo; + &((struct omap_mbox1_priv *)mbox->priv)->tx_fifo; mbox_write_reg(msg & 0xffff, fifo->data); mbox_write_reg(msg >> 16, fifo->cmd); @@ -110,6 +110,7 @@ omap1_mbox_is_irq(struct omap_mbox *mbox, omap_mbox_type_t irq) } struct omap_mbox_ops omap1_mbox_ops = { + .type = OMAP_MBOX_TYPE1, .fifo_read = omap1_mbox_fifo_read, .fifo_write = omap1_mbox_fifo_write, .fifo_empty = omap1_mbox_fifo_empty, diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index ab72f22fa22..e7177cd62f3 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -114,10 +114,13 @@ static void mbox_msg_receiver(void *p) struct omap_mbox *mbox = (struct omap_mbox *)p; struct omap_mbq *mbq = mbox->mbq; mbox_msg_t msg; + int was_full; while (!mbq_empty(mbq)) { + was_full = mbq_full(mbq); msg = mbq_get(mbq); - enable_mbox_irq(mbox, IRQ_RX); + if (was_full) /* now we have a room in the mbq. */ + enable_mbox_irq(mbox, IRQ_RX); if (unlikely(mbox_seq_test(mbox, msg))) { printk(KERN_ERR