Swaminathan S wrote:
Fixes the SENTSTALL handling code to look for EP busy status before returning the request. If EP is not busy do not giveback the request and restart the request in the context of CLEAR STALL feature from the host.
Signed-off-by: Swaminathan S <[EMAIL PROTECTED]>
AFAIK, this code is partly authored by MontaVista.
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c index d6a802c..491a3e7 100644 --- a/drivers/usb/musb/musb_gadget.c +++ b/drivers/usb/musb/musb_gadget.c
[...]
@@ -429,7 +429,7 @@ void musb_g_tx(struct musb *musb, u8 epnum) musb->dma_controller->channel_abort(dma); }- if (request)+ if (request && musb_ep->busy) musb_g_giveback(musb_ep, request, -EPIPE);break;@@ -759,7 +759,7 @@ void musb_g_rx(struct musb *musb, u8 epnum) csr &= ~MUSB_RXCSR_P_SENTSTALL; musb_writew(epio, MUSB_RXCSR, csr);- if (request)+ if (request && musb_ep->busy) musb_g_giveback(musb_ep, request, -EPIPE); goto done; }
NAK this part. The STALL handling is totally insane in this driver and this is a palliatve, not a fix. I'm hoping to post a real fix RSN.
WBR, Sergei _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
