diff options
author | Ajay Kumar Gupta <ajay.gupta@ti.com> | 2011-12-13 10:32:42 +0530 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2011-12-14 09:32:51 +0200 |
commit | ccc080c77cd47fde5eb097058fae930b956096eb (patch) | |
tree | 31118dfe4aef41f8b7f9c5cb6966d66191de6b6f | |
parent | 1115b9e279a23ca0bf7eda7d7697fe20a441304e (diff) | |
download | blackbird-op-linux-ccc080c77cd47fde5eb097058fae930b956096eb.tar.gz blackbird-op-linux-ccc080c77cd47fde5eb097058fae930b956096eb.zip |
usb: musb: fix reset issue with full speed device
TXMAXP register is not getting programmed correctly for a full speed device
as can_bulk_split() have been removed by
"0662481: usb: musb: disable double buffering when it's broken" patch.
Adding back the case for can_bulk_split() to fix the reset message seen with
a full speed stick.
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | drivers/usb/musb/musb_host.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c index 60ddba8066ea..79cb0af779fa 100644 --- a/drivers/usb/musb/musb_host.c +++ b/drivers/usb/musb/musb_host.c @@ -774,6 +774,10 @@ static void musb_ep_program(struct musb *musb, u8 epnum, if (musb->double_buffer_not_ok) musb_writew(epio, MUSB_TXMAXP, hw_ep->max_packet_sz_tx); + else if (can_bulk_split(musb, qh->type)) + musb_writew(epio, MUSB_TXMAXP, packet_sz + | ((hw_ep->max_packet_sz_tx / + packet_sz) - 1) << 11); else musb_writew(epio, MUSB_TXMAXP, qh->maxpacket | |