View Single Post
Posts: 2,802 | Thanked: 4,491 times | Joined on Nov 2007
#560
Originally Posted by mcow View Post
Could someone explain the bug-3243 problem?
Here's the explanation from the upstream commit:

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.
I don't do Windows myself and USB networking (eg bootmenu) has always worked fine for me with Linux hosts without the patch so I can't offer any useful comments :-/
 

The Following User Says Thank You to lma For This Useful Post: