usb: musb: clean up commit 'workaround Blackfin FIFO anomalies'
authorBryan Wu <cooloney@kernel.org>
Mon, 28 Dec 2009 11:40:39 +0000 (13:40 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 2 Mar 2010 22:53:47 +0000 (14:53 -0800)
The version applied had a few comments which are now
done.

Thanks to Sergei for pointing out.

Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/blackfin.c

index ad26e656966510f84ef0244a7f57a56a3faa82c8..bcee1339d4fdfdbb0a53c7a96ddbdeceda360b85 100644 (file)
@@ -30,7 +30,6 @@ void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *src)
        void __iomem *fifo = hw_ep->fifo;
        void __iomem *epio = hw_ep->regs;
        u8 epnum = hw_ep->epnum;
-       u16 dma_reg = 0;
 
        prefetch((u8 *)src);
 
@@ -42,15 +41,17 @@ void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *src)
        dump_fifo_data(src, len);
 
        if (!ANOMALY_05000380 && epnum != 0) {
-               flush_dcache_range((unsigned int)src,
-                       (unsigned int)(src + len));
+               u16 dma_reg;
+
+               flush_dcache_range((unsigned long)src,
+                       (unsigned long)(src + len));
 
                /* Setup DMA address register */
-               dma_reg = (u16) ((u32) src & 0xFFFF);
+               dma_reg = (u32)src;
                bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg);
                SSYNC();
 
-               dma_reg = (u16) (((u32) src >> 16) & 0xFFFF);
+               dma_reg = (u32)src >> 16;
                bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg);
                SSYNC();
 
@@ -79,12 +80,9 @@ void musb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *src)
                SSYNC();
 
                if (unlikely((unsigned long)src & 0x01))
-                       outsw_8((unsigned long)fifo, src,
-                               len & 0x01 ? (len >> 1) + 1 : len >> 1);
+                       outsw_8((unsigned long)fifo, src, (len + 1) >> 1);
                else
-                       outsw((unsigned long)fifo, src,
-                               len & 0x01 ? (len >> 1) + 1 : len >> 1);
-
+                       outsw((unsigned long)fifo, src, (len + 1) >> 1);
        }
 }
 /*
@@ -94,19 +92,19 @@ void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
 {
        void __iomem *fifo = hw_ep->fifo;
        u8 epnum = hw_ep->epnum;
-       u16 dma_reg = 0;
 
        if (ANOMALY_05000467 && epnum != 0) {
+               u16 dma_reg;
 
-               invalidate_dcache_range((unsigned int)dst,
-                       (unsigned int)(dst + len));
+               invalidate_dcache_range((unsigned long)dst,
+                       (unsigned long)(dst + len));
 
                /* Setup DMA address register */
-               dma_reg = (u16) ((u32) dst & 0xFFFF);
+               dma_reg = (u32)dst;
                bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg);
                SSYNC();
 
-               dma_reg = (u16) (((u32) dst >> 16) & 0xFFFF);
+               dma_reg = (u32)dst >> 16;
                bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg);
                SSYNC();