]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/musb/musb_dsps.c
usb: musb: dsps: remove EOI access
[karo-tx-linux.git] / 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,