public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Bryan Wu <bryan.wu@analog.com>
To: Tony Lindgren <tony@atomide.com>,
	David Brownell <dbrownell@users.sourceforge.net>,
	linux-omap-open-source@linux.omap.com
Subject: [Question] Always got STALL in MUSB Host driver
Date: Thu, 15 Nov 2007 18:48:57 +0800	[thread overview]
Message-ID: <1195123737.3698.24.camel@roc-desktop> (raw)

Dear Tony and David, 

I struggled in MUSB driver of Blackfin for a long time. Currently, usb
device mode should be ok, but USB host mode driver still got weird
response.

Blackfin BF54x USB OTG contoller is a single port OTG controller, which
has EP0 to EP7 8 bi-directional endpoints. And EP0 FIFO size is 64 x 2,
EP1 to EP4 FIFO size is 128 x 2 and EP5 to EP7 is 1024 x 2, totally 7232
bytes. So EP5 is selected as musb->bulk_ep.

Double buffering is automatically as Hardware manual said:

"Each endpoint FIFO can buffer one or two packets (in double-buffered
mode). The double buffered mode is automatically enabled when the soft-
ware programs a maximum packet size for an endpoint that is less than
half the actual FIFO size for that endpoint. Double-buffering is recom-
mended for most applications to improve efficiency by reducing the
frequency with which each endpoint needs to be serviced."

I noticed the comments of musb_host.c:
"+ double buffered OUT/TX endpoints saw stalls(!) with certain usbtest
*       configurations, but otherwise double buffering passes basic
tests."

And my driver always got STALL in IN/RX endpoints as below (USB device
is a high-speed 1G USB Flash disk):
---
Start INQUIRY SCSI command:
1. send out 31 bytes to ep2out-bulk (though hardware EP5 OUT)

musb_start_urb 214: qh 03bfd520 urb 03b79800 dev2 ep2out-bulk, hw_ep 5, 03bfda60/31
musb_ep_program 653: --> hw5 urb 03b79800 spd3 dev2 ep2out h_addr00 h_port00 bytes 31
musb_write_fifo 112: TX ep5 fifo ffc03ca8 count 31 buf 03bfda60
musb_start_urb 256: Start TX5 pio
musb_interrupt 1582: ** IRQ host usb0008 tx0020 rx0000
musb_host_tx 1194: OUT/TX5 end, csr 2000
__musb_giveback 304: complete 03b79800 (0), dev2 ep2out, 31/31

2. wait for 36 bytes from ep1in-bulk (though hardware EP5 IN)
musb_start_urb 214: qh 03bfd520 urb 0301d200 dev2 ep1in-bulk, hw_ep 5, 030000c0/36
musb_ep_program 653: <-- hw5 urb 0301d200 spd3 dev2 ep1in h_addr00 h_port00 bytes 36
musb_interrupt 1582: ** IRQ host usb0008 tx0000 rx0020
musb_host_rx 1419: <== hw 5 rxcsr 0040, urb actual 0 (+dma 0)
musb_host_rx 1424: RX end 5 STALL
__musb_giveback 304: complete 0301d200 (-32), dev2 ep1in, 0/36

Got STALL here

musb_start_urb 214: qh 03bfd520 urb 03b79800 dev2 ep0out, hw_ep 0, 0300a500/8
musb_ep_program 653: --> hw0 urb 03b79800 spd3 dev2 ep0out h_addr00 h_port00 bytes 8
musb_write_fifo 112: TX ep0 fifo ffc03c80 count 8 buf 0300a500
musb_start_urb 256: Start TX0 pio
musb_interrupt 1582: ** IRQ host usb0008 tx0001 rx0000
musb_h_ep0_irq 1043: <== csr0 0000, qh 03bfd520, count 0, urb 03b79800, stage 1
musb_h_ep0_continue 978: start no-DATA
musb_h_ep0_irq 1132: ep0 STATUS, csr 0060
musb_interrupt 1582: ** IRQ host usb0008 tx0001 rx0000
musb_h_ep0_irq 1043: <== csr0 0041, qh 03bfd520, count 0, urb 03b79800, stage 4
__musb_giveback 304: complete 03b79800 (0), dev2 ep0out, 0/0

3. wait for 13 bytes from ep1in-bulk (though hardware EP5 IN)
musb_start_urb 214: qh 03bfd520 urb 03b79800 dev2 ep1in-bulk, hw_ep 5, 03bfda60/13
musb_ep_program 653: <-- hw5 urb 03b79800 spd3 dev2 ep1in h_addr00 h_port00 bytes 13
musb_interrupt 1582: ** IRQ host usb0008 tx0000 rx0020
musb_host_rx 1419: <== hw 5 rxcsr 0040, urb actual 0 (+dma 0)
musb_host_rx 1424: RX end 5 STALL
__musb_giveback 304: complete 03b79800 (-32), dev2 ep1in, 0/13

Got STALL again.
----

Is this issue related with double buffering or other setting?
If you guys got any idea, please give me some help.
Because my USB protocol analyzer is broken, I can't get some help from the instrument.

Thanks a lot
-Bryan Wu

             reply	other threads:[~2007-11-15 10:48 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-15 10:48 Bryan Wu [this message]
2007-11-15 18:01 ` [Question] Always got STALL in MUSB Host driver Tony Lindgren
2007-11-15 18:43   ` David Brownell
2007-11-19  6:08     ` Nazim Khan
2007-11-19  6:34       ` David Brownell
2007-11-19  6:49         ` Nazim Khan
2007-11-19  7:23           ` David Brownell
2007-11-19 10:25             ` Nazim Khan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1195123737.3698.24.camel@roc-desktop \
    --to=bryan.wu@analog.com \
    --cc=dbrownell@users.sourceforge.net \
    --cc=linux-omap-open-source@linux.omap.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox