All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
To: Wolfgang Denk <wd-ynQEQJNshbs@public.gmane.org>
Cc: Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>,
	pavel-ynQEQJNshbs@public.gmane.org,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: Forcing PIO mode instead of DMA via DT property
Date: Tue, 24 Jul 2012 07:55:55 -0700	[thread overview]
Message-ID: <500EB77B.6050105@firmworks.com> (raw)
In-Reply-To: <20120724143533.080F5200247-C2Gvrrd9BC/j/ljBK/0BTg@public.gmane.org>

On 7/24/2012 7:35 AM, Wolfgang Denk wrote:
> Dear Arnd,
> 
> In message <201207241319.45101.arnd-r2nGTMty4D4@public.gmane.org> you wrote:
>>
>>> I'm trying to implement a driver that can do both DMA and PIO, and it would be 
>>> nice if the user was able to select the mode (on a per-bus basis) using the DT. 
>>> The PIO mode can reduce the overhead in some cases and therefore be better 
>>> choice than the DMA (for example when most transfers move only very few data, or 
>>> when board-specific hardware properties kick in).
>>>
>>> I was thinking about using some "manf,use-pio" DT property, but I haven't found 
>>> any such example yet, so I wonder if this is a good idea.

I think it's okay to have such a property, especially in the case where
there are
specific hardware reasons for choosing PIO on that bus.

It would be even better to have a property that describes the specific
hardware
situation that leads to the conclusion.  The conclusion is "use PIO",
whereas the
situation might be "expected transfer length = 4".  Some such
"situations" might
apply to specific slaves, and thus might better be described in a child
node, with
the information processed in the child driver and passed to the bus
driver through
a callback - but that probably has tricky API implications.

The thing to avoid is properties that can't easily be tied to some
objectively-true
aspect of the system.

Write down what it is that causes the choice, then consider describing
that in
a property, letting the driver make the final decision based on that
information.


>>>
>>
>> What kind of device is this? We are currently working on the dmaengine
>> binding, so an easy way to do this would be (one that binding is complete)
>> to either provide or not provide the channel description depending on
>> what you want to do with the device. This is clearly a hack but might
>> fit your use case without adding any ugly code to the kernel.
>>
>> Another option would be to make it a runtime configuration option,
>> e.g. through sysfs, but that again depends a lot on what device you
>> are talking about.
> 
> At least in my example of the x86 system a sysfs interface would not
> help, as the kernel would crash during bootup before I can run user
> space code.
> 
> Best regards,
> 
> Wolfgang Denk
> 

  parent reply	other threads:[~2012-07-24 14:55 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-22 21:28 Forcing PIO mode instead of DMA via DT property Marek Vasut
     [not found] ` <201207222328.27008.marex-ynQEQJNshbs@public.gmane.org>
2012-07-23  3:25   ` Aggrwal Poonam-B10812
     [not found]     ` <ACB6D0C0104CFF42A45A5D82A0DD4F3D079B4DAE-RL0Hj/+nBVDYdknt8GnhQq4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2012-07-23  3:31       ` Marek Vasut
     [not found]         ` <201207230531.02305.marex-ynQEQJNshbs@public.gmane.org>
2012-07-23  3:49           ` Varun Wadekar
2012-07-23  4:38           ` Aggrwal Poonam-B10812
2012-07-23  5:47       ` Wolfgang Denk
     [not found]         ` <20120723054758.C622C200263-C2Gvrrd9BC/j/ljBK/0BTg@public.gmane.org>
2012-07-24  1:56           ` Aggrwal Poonam-B10812
     [not found]             ` <ACB6D0C0104CFF42A45A5D82A0DD4F3D079B6B36-RL0Hj/+nBVDYdknt8GnhQq4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2012-07-24  4:17               ` Marek Vasut
     [not found]                 ` <201207240617.31565.marex-ynQEQJNshbs@public.gmane.org>
2012-07-24 14:49                   ` Aggrwal Poonam-B10812
     [not found]                     ` <ACB6D0C0104CFF42A45A5D82A0DD4F3D079B7AA7-RL0Hj/+nBVDYdknt8GnhQq4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2012-07-30 14:00                       ` Marek Vasut
2012-07-24 13:19   ` Arnd Bergmann
     [not found]     ` <201207241319.45101.arnd-r2nGTMty4D4@public.gmane.org>
2012-07-24 14:35       ` Wolfgang Denk
     [not found]         ` <20120724143533.080F5200247-C2Gvrrd9BC/j/ljBK/0BTg@public.gmane.org>
2012-07-24 14:55           ` Mitch Bradley [this message]
     [not found]             ` <500EB77B.6050105-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-07-24 14:59               ` Mis-wrapped text Mitch Bradley

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=500EB77B.6050105@firmworks.com \
    --to=wmb-d5eqfidgl7eakbo8gow8eq@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=marex-ynQEQJNshbs@public.gmane.org \
    --cc=pavel-ynQEQJNshbs@public.gmane.org \
    --cc=wd-ynQEQJNshbs@public.gmane.org \
    /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.