aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorVikram Pandita <vikram.pandita@ti.com>2011-09-06 12:35:41 -0700
committerBenoit Goby <benoit@android.com>2011-09-06 17:24:16 -0700
commit923239280d6734b6b4926ea29afb80c534b7c3cb (patch)
treec6bd90b6fb093ec2ec305a501838d24d6933560d /drivers/usb
parenta96b2ef1b13e2beeaf9325db3319e2bf544ccbec (diff)
downloadkernel_samsung_tuna-923239280d6734b6b4926ea29afb80c534b7c3cb.zip
kernel_samsung_tuna-923239280d6734b6b4926ea29afb80c534b7c3cb.tar.gz
kernel_samsung_tuna-923239280d6734b6b4926ea29afb80c534b7c3cb.tar.bz2
usb: musb: fix context api's
RxFifoSz, TxFifoSz, RxFifoAddr, TxFifoAddr are all indexed registers. So before doing a context save or restore, INDEX register should be set, then only one gets to the right register offset. Change-Id: I33ab09f8c214457914ee848e097880c8800de9e6 Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/musb/musb_core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index c5c608b..e2648ff 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2214,6 +2214,7 @@ static void musb_save_context(struct musb *musb)
musb->context.devctl = musb_readb(musb_base, MUSB_DEVCTL);
for (i = 0; i < musb->config->num_eps; ++i) {
+ musb_writeb(musb_base, MUSB_INDEX, i);
epio = musb->endpoints[i].regs;
musb->context.index_regs[i].txmaxp =
musb_readw(epio, MUSB_TXMAXP);
@@ -2280,6 +2281,7 @@ static void musb_restore_context(struct musb *musb)
musb_writeb(musb_base, MUSB_DEVCTL, musb->context.devctl);
for (i = 0; i < musb->config->num_eps; ++i) {
+ musb_writeb(musb_base, MUSB_INDEX, i);
epio = musb->endpoints[i].regs;
musb_writew(epio, MUSB_TXMAXP,
musb->context.index_regs[i].txmaxp);