]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
ARM: OMAP: Fix for mailbox-omap1
authorToshihiro Kobayashi <Toshihiro.Kobayashi@nokia.com>
Sat, 11 Nov 2006 00:07:22 +0000 (02:07 +0200)
committerTony Lindgren <tony@atomide.com>
Sat, 11 Nov 2006 00:07:22 +0000 (02:07 +0200)
Fix for omap1 mailbox driver.
This will enable DSP Gateway again.

Signed-off-by: Toshihiro Kobayashi <toshihiro.kobayashi@nokia.com>
arch/arm/mach-omap1/mailbox.c
arch/arm/plat-omap/mailbox.c

index e13382fa0ca67b219765d6d325017d5aa590c703..ed59f968825269901082a3934c5d1bafa5d14608 100644 (file)
@@ -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,
index ab72f22fa22788f919c54b427b2e950caf15cb4e..e7177cd62f3580b1efceb8bfd80930ec6a7a1d2e 100644 (file)
@@ -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