public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [Discussion] USB: musb-gadget: how to fix ZLP issue in musb_g_tx
@ 2010-09-15 10:53 Ming Lei
  2010-09-15 10:56 ` Felipe Balbi
  2010-09-15 13:06 ` Sergei Shtylyov
  0 siblings, 2 replies; 12+ messages in thread
From: Ming Lei @ 2010-09-15 10:53 UTC (permalink / raw)
  To: Sergei Shtylyov, balbi
  Cc: greg@kroah.com, linux-usb@vger.kernel.org,
	linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org,
	David Brownell, Gadiyar, Anand, Mike Frysinger

Hi All,

In another thread, Sergei pointed out there is a ZLP issue in musb_g_tx:

Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> On 15-09-2010 14:05, Felipe Balbi wrote:
>
> >> I didn't say it was duplicate for DMA, just too late.
>
> > how come ? we need to send ZLP before giving back the request.
>
>     Well, look at the code ionce again. We need to send ZLP *after*
> request->actual == request->length, but as the check is inserted
> after the ZLP send, ZLP *may* be sent once the first DMA completes,
> not the last.
>
> WBR, Sergei

balbi also confirmed that is is really a problem.

I also have two related questions below for the problem:

1),  why is the check for "is_dma" needed here?

      if (is_dma || request->actual == request->length) {
           ....
      }

2), why is a zlp needed in the case below?

      #ifdef CONFIG_USB_INVENTRA_DMA
                  || (is_dma && (!dma->desired_mode ||
                     (request->actual & (musb_ep->packet_sz - 1))))
     #endif

Seems no request->zero is set to ask for zlp explicitly in
the case above.

IMO, it is not difficult to give a good fix for the ZLP problem
if the two questions are clear.

-- 
Lei Ming

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2010-09-16 11:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-15 10:53 [Discussion] USB: musb-gadget: how to fix ZLP issue in musb_g_tx Ming Lei
2010-09-15 10:56 ` Felipe Balbi
2010-09-15 11:02   ` Ming Lei
2010-09-15 11:07     ` Felipe Balbi
2010-09-15 13:10       ` Sergei Shtylyov
2010-09-16  6:05         ` Felipe Balbi
2010-09-16  6:15           ` Gadiyar, Anand
2010-09-16  6:22             ` Felipe Balbi
2010-09-16  6:54               ` Ming Lei
2010-09-16 11:03           ` Sergei Shtylyov
2010-09-15 11:14   ` Ming Lei
2010-09-15 13:06 ` Sergei Shtylyov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox