On Thu, Aug 21, 2008 at 08:21:00PM +0530, ext Gadiyar, Anand wrote: > From: Anand Gadiyar <gadiyar@xxxxxx> > > If Indexed Mode register accesses are enabled, the ep0_rxstate() > function calls musb_g_ep0_giveback() before writing to the CSR > register. When control returns to this ep0_rxstate, the index > register contents are over-written. This causes the CSR register > write to fail. > > Fixed by writing the correct value into the index register before > writing to the CSR. > > This was observed only in ep0_rxstate() with g_ether loaded and > the device connected to a MS Windows host PC. Anticipatively fixed > ep0_txstate() as well. > > Signed-off-by: Anand Gadiyar <gadiyar@xxxxxx> Acked-by: Felipe Balbi <felipe.balbi@xxxxxxxxx> > Fixed my mailer finally. :) good :-) > > drivers/usb/musb/musb_gadget_ep0.c | 2 ++ > 1 files changed, 2 insertions(+) > > Index: linux-omap-2.6/drivers/usb/musb/musb_gadget_ep0.c > =================================================================== > --- linux-omap-2.6.orig/drivers/usb/musb/musb_gadget_ep0.c 2008-04-14 15:36:38.000000000 +0530 > +++ linux-omap-2.6/drivers/usb/musb/musb_gadget_ep0.c 2008-08-21 18:12:11.688711634 +0530 > @@ -476,6 +476,7 @@ static void ep0_rxstate(struct musb *mus > return; > musb->ackpend = 0; > } > + musb_ep_select(musb->mregs, 0); > musb_writew(regs, MUSB_CSR0, tmp); > } > > @@ -528,6 +529,7 @@ static void ep0_txstate(struct musb *mus > } > > /* send it out, triggering a "txpktrdy cleared" irq */ > + musb_ep_select(musb->mregs, 0); > musb_writew(regs, MUSB_CSR0, csr); > } > -- balbi -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html