All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anand Gadiyar <gadiyar@ti.com>
To: Ming Lei <tom.leiming@gmail.com>
Cc: linux-omap@vger.kernel.org, linux-usb <linux-usb@vger.kernel.org>
Subject: Re: [Question] which type of DMA taken by musb of beagle-xM(DM3730)?
Date: Sun, 31 Oct 2010 01:34:11 -0400	[thread overview]
Message-ID: <4CCCFFD3.6050703@ti.com> (raw)
In-Reply-To: <AANLkTi=ZHb4iNW3KzJzoVyMP1bp3ne3oRmW3YWh0ueEm@mail.gmail.com>

On 10/27/2010 11:27 AM, Ming Lei wrote:
> 2010/10/27 Anand Gadiyar<gadiyar@ti.com>:
>> On 10/27/2010 10:55 AM, Ming Lei wrote:
>>>
>>> 2010/10/27 Ming Lei<tom.leiming@gmail.com>:
>>>>
>>>> Hi Gadiyar,
>>>>
>>>> Thanks for your reply.
>>>>
>>>> 2010/10/27 Gadiyar, Anand<gadiyar@ti.com>:
>>>>>
>>>>> On Wed, Oct 27, 2010 at 5:54 AM, Ming Lei<tom.leiming@gmail.com>    wrote:
>>>>>>
>>>>>> I want to know which type of DMA is taken by musb of DM3730,
>>>>>> INVENTRA_DMA, TI_CPPI_DMA or others?
>>>>>
>>>>> Inventra DMA. An updated version compared to the OMAP34xx/35xx.
>>>>>
>>>>> - No major change to the programming model
>>>>> - The simultaneous TX-RX DMA hang bug is gone with this one.
>>>>
>>>> I find one issue about the dma transfer if Inventra DMA is used, seems
>>>> always 2 bytes less than required length, is it caused by unaligned
>>>> destination address?
>>>>
>>>> See the log captured in g_ether context:
>>>>
>>
>> Ouch, yes. I'd forgotten about this one. I think I did post out patches for
>> this. But I've moved to other activities and didn't follow up. I'll dig them
>> up and  post in a bit.
>>
>> The issue is that, by design, the last 2 bits of DMA_ADDR are masked by the
>> DMA engine; so we need DMA_ADDR to be aligned to a 32-bit boundary.
>>
>> In gadget mode, g_ether is one driver that's badly affected - there were
>> some patches posted which improved g_ether somewhat. In host mode,
>> USB-networking cases were most affected. MUSB has two options:
>>
>> - dma_channel_program can reject transfers to unaligned DMA addresses, so
>> that the backup PIO mode can take over (a quick fix - I'll post this one
>> again)
>>
>> - MUSB can bounce the transfer buffer to another buffer which is properly
>> aligned
>>
>
> Seems such design of DMA engine is a regression in chip, :-(
>
> Both the two options may degrade performance a lot, at least
> for g_ether application.
>
> I don't think there is better fix in software than the two ones
> you posted.
>

Looking at old mail threads, I remember Ajay had one objection to using 
PIO for unaligned transfers - when multiple DMA channels are repeatedly 
hit with unaligned DMA addresses, throughput and CPU load go for a toss. 
Ajay wanted to use the OMAP's SystemDMA engine to carry out the 
transfers in those cases. Anyway, that's a separate topic - and should 
probably be done after the DMA code is rewritten. (I think Felipe had 
some plans for that).

I've posted a patch implementing the quick fix. Let me know if it solves 
the problem with g_ether.

While fixing this, I noticed dma_channel_program also returns "true"
while it is supposed to return an "int". Topic for a separate patch.

- Anand

  reply	other threads:[~2010-10-31  5:34 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-27  9:54 [Question] which type of DMA taken by musb of beagle-xM(DM3730)? Ming Lei
2010-10-27 14:41 ` Gadiyar, Anand
2010-10-27 14:51   ` Ming Lei
2010-10-27 14:55     ` Ming Lei
2010-10-27 15:11       ` Anand Gadiyar
     [not found]         ` <4CC84109.9040304-l0cyMroinI0@public.gmane.org>
2010-10-27 15:27           ` Ming Lei
2010-10-31  5:34             ` Anand Gadiyar [this message]
2010-10-31 10:11               ` Ming Lei
2010-10-28 15:36         ` Ming Lei
     [not found]           ` <AANLkTikUqXpMhPfMV78sf4zusQ-h4JpE+eSgnnpE2PON-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-31  5:28             ` Anand Gadiyar

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=4CCCFFD3.6050703@ti.com \
    --to=gadiyar@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=tom.leiming@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.