On Wed, Aug 6, 2008 at 12:45 PM, Gadiyar, Anand <gadiyar@xxxxxx> wrote: >> 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. > I tried both mode, the result is same as mentioned. Typically, we use Flat mode on Blackfin. Thanks a lot -Bryan -- 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