• M
    usb: musb: clear RXCSR_AUTOCLEAR before PIO read · e75df371
    Ming Lei 提交于
    If RXCSR_AUTOCLEAR flag is not cleard before PIO reading, one packet
    may be recieved by musb fifo, but no chance to notify
    software, so cause packet loss, follows the detailed process:
    
    	- PIO read one packet
    	- musb fifo auto clear the MUSB_RXCSR_RXPKTRDY
    	- musb continue to recieve the next packet, and MUSB_RXCSR_RXPKTRDY
    	is set
    	- software clear the MUSB_RXCSR_RXPKTRDY, so there is no chance for
    	musb to notify software that the 2nd recieved packet.
    
    The patch does fix the g_ether issue below:
    
    	- use fifo_mode 3 to enable double buffer
    	- 'ping -s 1024 IP_OF_BEAGLE_XM'
    	- one usb packet of 512 byte is lost, so ping failed,
    	which can be observed by wireshark
    
    note:
    	Beagle xm takes musb rtl1.8 and may fallback to pio mode
    	for unaligned buffer.
    Signed-off-by: NMing Lei <tom.leiming@gmail.com>
    Signed-off-by: NFelipe Balbi <balbi@ti.com>
    e75df371
musb_gadget.c 54.8 KB