From 756ea7eccd759975fdbc37947df35ad669ea7360 Mon Sep 17 00:00:00 2001 From: Bob Liu Date: Wed, 5 Jan 2011 17:36:41 +0800 Subject: [PATCH] --- yaml --- r: 233123 b: refs/heads/master c: 9c668079c864c3b49d8deb56dafedf916b2a72d0 h: refs/heads/master i: 233121: 43bc6b5ea68a925303a0990639f77b35f4e08a7f 233119: d54cf07fd62ef63b4561e9fdfe0b520e069799a2 v: v3 --- [refs] | 2 +- trunk/drivers/usb/musb/musbhsdma.h | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index d90e73ebcc8a..daa4021096a8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 541079de88735152a993ff93e90096643730a054 +refs/heads/master: 9c668079c864c3b49d8deb56dafedf916b2a72d0 diff --git a/trunk/drivers/usb/musb/musbhsdma.h b/trunk/drivers/usb/musb/musbhsdma.h index f763d62f151c..21056c924c74 100644 --- a/trunk/drivers/usb/musb/musbhsdma.h +++ b/trunk/drivers/usb/musb/musbhsdma.h @@ -94,24 +94,33 @@ static inline void musb_write_hsdma_addr(void __iomem *mbase, { musb_writew(mbase, MUSB_HSDMA_CHANNEL_OFFSET(bchannel, MUSB_HSDMA_ADDR_LOW), - ((u16)((u32) dma_addr & 0xFFFF))); + dma_addr); musb_writew(mbase, MUSB_HSDMA_CHANNEL_OFFSET(bchannel, MUSB_HSDMA_ADDR_HIGH), - ((u16)(((u32) dma_addr >> 16) & 0xFFFF))); + (dma_addr >> 16)); } static inline u32 musb_read_hsdma_count(void __iomem *mbase, u8 bchannel) { - return musb_readl(mbase, + u32 count = musb_readw(mbase, MUSB_HSDMA_CHANNEL_OFFSET(bchannel, MUSB_HSDMA_COUNT_HIGH)); + + count = count << 16; + + count |= musb_readw(mbase, + MUSB_HSDMA_CHANNEL_OFFSET(bchannel, MUSB_HSDMA_COUNT_LOW)); + + return count; } static inline void musb_write_hsdma_count(void __iomem *mbase, u8 bchannel, u32 len) { - musb_writel(mbase, + musb_writew(mbase, + MUSB_HSDMA_CHANNEL_OFFSET(bchannel, MUSB_HSDMA_COUNT_LOW),len); + musb_writew(mbase, MUSB_HSDMA_CHANNEL_OFFSET(bchannel, MUSB_HSDMA_COUNT_HIGH), - len); + (len >> 16)); } #endif /* CONFIG_BLACKFIN */