RE: musb: Add workaround for AM35x advisory Advisory 1.1.20

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
> On 03/14/2012 07:49 AM, Gupta, Ajay Kumar wrote:
> >> I *think* that the DMA engine is performing some access on its own to
> >> those registers behind the bridge which leads to the same read&
> clear
> >> interrupt race.
> >
> > DMA driver (CPPI4.1) is not yet available for AM35x but DMA might read
> > Mentor core registers. The solution is to disable non-PDR interrupt in
> > CONTROL register (bit D3) at offset 0x0004.
> > "D3 | uint | USB non-PDR interrupt enable"
> 
> I see. Care to send a patch to replace my "force DMA off"?

We need to enable non-PDR (Mentor core only) interrupts using below patch.
------------------------------------------------------------------------
diff --git a/drivers/usb/musb/am35x.c b/drivers/usb/musb/am35x.c
index e233d2b..cbd17e5 100644
--- a/drivers/usb/musb/am35x.c
+++ b/drivers/usb/musb/am35x.c
@@ -68,6 +68,7 @@

 /* Control register bits */
 #define AM35X_SOFT_RESET_MASK  1
+#define AM35X_ENABLE_NON_PDR   (1 << 3)

 /* USB interrupt register bits */
 #define AM35X_INTR_USB_SHIFT   16
@@ -353,7 +354,7 @@ static int am35x_musb_init(struct musb *musb)
        struct musb_hdrc_platform_data *plat = dev->platform_data;
        struct omap_musb_board_data *data = plat->board_data;
        void __iomem *reg_base = musb->ctrl_base;
-       u32 rev;
+       u32 rev, ctrl;

        musb->mregs += USB_MENTOR_CORE_OFFSET;

@@ -383,6 +384,11 @@ static int am35x_musb_init(struct musb *musb)

        msleep(5);

+       /* Enable the non-PDR interrupts */
+       ctrl = musb_readl(reg_base, USB_CTRL_REG);
+       ctrl |= AM35X_ENABLE_NON_PDR;
+       musb_writel(reg_base, USB_CTRL_REG, ctrl);
+
        musb->isr = am35x_musb_interrupt;

        /* clear level interrupt */
------------------------------------------------------------------------
Ajay 
> 
> > Ajay
> 
> Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux