usb: musb: dsps: remove EOI access
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 26 Jul 2013 09:11:38 +0000 (11:11 +0200)
committerFelipe Balbi <balbi@ti.com>
Mon, 29 Jul 2013 10:58:28 +0000 (13:58 +0300)
The EOI register is not present in the AM335x memory space according to
the TRM and thus removed.
Should any platform using the EOI register get merged then it may be
used again if the register address is not zero.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_dsps.c

index aba2dc58938d9ca8dca7b6d1015e935837b73d2f..23f511f7df6d06cc2d6061d226a28205d1f4e5a0 100644 (file)
@@ -73,7 +73,6 @@ struct dsps_musb_wrapper {
        u16     revision;
        u16     control;
        u16     status;
-       u16     eoi;
        u16     epintr_set;
        u16     epintr_clear;
        u16     epintr_status;
@@ -203,7 +202,6 @@ static void dsps_musb_disable(struct musb *musb)
        dsps_writel(reg_base, wrp->epintr_clear,
                         wrp->txep_bitmap | wrp->rxep_bitmap);
        dsps_writeb(musb->mregs, MUSB_DEVCTL, 0);
-       dsps_writel(reg_base, wrp->eoi, 0);
 }
 
 static void otg_timer(unsigned long _musb)
@@ -317,7 +315,7 @@ static irqreturn_t dsps_interrupt(int irq, void *hci)
        /* Get usb core interrupts */
        usbintr = dsps_readl(reg_base, wrp->coreintr_status);
        if (!usbintr && !epintr)
-               goto eoi;
+               goto out;
 
        musb->int_usb = (usbintr & wrp->usb_bitmap) >> wrp->usb_shift;
        if (usbintr)
@@ -385,16 +383,11 @@ static irqreturn_t dsps_interrupt(int irq, void *hci)
        if (musb->int_tx || musb->int_rx || musb->int_usb)
                ret |= musb_interrupt(musb);
 
- eoi:
-       /* EOI needs to be written for the IRQ to be re-asserted. */
-       if (ret == IRQ_HANDLED || epintr || usbintr)
-               dsps_writel(reg_base, wrp->eoi, 1);
-
        /* Poll for ID change */
        if (musb->xceiv->state == OTG_STATE_B_IDLE)
                mod_timer(&glue->timer[pdev->id],
                         jiffies + wrp->poll_seconds * HZ);
-
+out:
        spin_unlock_irqrestore(&musb->lock, flags);
 
        return ret;
@@ -443,9 +436,6 @@ static int dsps_musb_init(struct musb *musb)
        val &= ~(1 << wrp->otg_disable);
        dsps_writel(musb->ctrl_base, wrp->phy_utmi, val);
 
-       /* clear level interrupt */
-       dsps_writel(reg_base, wrp->eoi, 0);
-
        return 0;
 err0:
        usb_put_phy(musb->xceiv);
@@ -724,7 +714,6 @@ static const struct dsps_musb_wrapper am33xx_driver_data = {
        .revision               = 0x00,
        .control                = 0x14,
        .status                 = 0x18,
-       .eoi                    = 0x24,
        .epintr_set             = 0x38,
        .epintr_clear           = 0x40,
        .epintr_status          = 0x30,