usb: musb: omap2+: fix context api's
authorVikram Pandita <vikram.pandita@ti.com>
Wed, 7 Sep 2011 16:19:23 +0000 (09:19 -0700)
committerFelipe Balbi <balbi@ti.com>
Mon, 12 Dec 2011 09:51:40 +0000 (11:51 +0200)
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.

Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_core.c

index b63ab1570103f2219afc5b44bdea08acd0531054..2141976d423cabea5ef8ed99934e93fc4df74e99 100644 (file)
@@ -2158,6 +2158,7 @@ static void musb_save_context(struct musb *musb)
                if (!epio)
                        continue;
 
+               musb_writeb(musb_base, MUSB_INDEX, i);
                musb->context.index_regs[i].txmaxp =
                        musb_readw(epio, MUSB_TXMAXP);
                musb->context.index_regs[i].txcsr =
@@ -2233,6 +2234,7 @@ static void musb_restore_context(struct musb *musb)
                if (!epio)
                        continue;
 
+               musb_writeb(musb_base, MUSB_INDEX, i);
                musb_writew(epio, MUSB_TXMAXP,
                        musb->context.index_regs[i].txmaxp);
                musb_writew(epio, MUSB_TXCSR,