A dirty and quick fix, I haven't figured out the root cause though.

in file_storage.c, add some delay in the fsg_main_thread function as
following:

 for(i=0;i<5000;i++); //adding delay

 spin_lock_irq(&fsg->lock);
 if (!exception_in_progress(fsg))
  fsg->state = FSG_STATE_STATUS_PHASE;
 spin_unlock_irq(&fsg->lock);


It works on my Davinci EVM board. The Mass storage drive pops up 2-3 seconds
after plugging the usb cable.

On 3/11/07, Yu Luo <[EMAIL PROTECTED]> wrote:

I saw the thread on this topic in Nov 2006 : 
http://linux.omap.com/pipermail/davinci-linux-open-source/2006-November/001552.html
  Can someone kindly advise if it is solved and how it is fixed? I am
having the same problem with my Davinci EVM board to work as a USB Mass
storage device. I followed the procedure in the thread, and It takes more
than 10 minutes for the PC to recognize the device.

I have tried 2.6.10 kernel shipped with the EVM board and the lastest
2.6.20 kernel from git. Both of them need a long time to recognize the
device. I noticed that the g_ep0.c of kernel 2.6.20 does set
MGC_M_TXCSR_CLRDATATOG when setting the MGC_M_TXCSR_P_SENDSTALL as Dave
advised.

Thanks,
Yu

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to