> On Tue, Aug 5, 2008 at 11:48 PM, Gadiyar, Anand <gadiyar@xxxxxx> 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. > > > > Actually, I'm still struggling in a bug similar with this one on Blackfin. > We ran following testcase 100 times, 10-20 times tastcases failed. > > --- > $ ./testusb -D /proc/bus/usb/005/012 -t14 -c 15000 -s 256 -v 1 > unknown speed /proc/bus/usb/005/012 > /proc/bus/usb/005/012 test 14 --> 75 (Value too large for defined data type) > --- > > I reported this bug to our hardware designer and the omap list. Felipe > said he did met this issue. > From the capture data of USB analyzer, the peripheral musb sent out > garbage data in the IN-STATUS stage. > In that stage, the DATA length should be zero. But the peripheral sent > out 1 byte or 2 bytes sometimes. > > Thanks > -Bryan Hi Bryan, Could you tell me if you're using Indexed Mode or Flat mode? I'll try this out on my boards and see what I get. - Anand -- 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