All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Scott Wood <scottwood@freescale.com>
Cc: devicetree@vger.kernel.org, hongbo.zhang@freescale.com,
	linux-kernel@vger.kernel.org, vinod.koul@intel.com, djbw@fb.com,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v7 2/3] DMA: Freescale: Add new 8-channel DMA engine device tree nodes
Date: Wed, 21 Aug 2013 17:15:46 -0600	[thread overview]
Message-ID: <52154A22.4090809@wwwdotorg.org> (raw)
In-Reply-To: <1377125827.5029.50.camel@snotra.buserror.net>

On 08/21/2013 04:57 PM, Scott Wood wrote:
> On Wed, 2013-08-21 at 16:40 -0600, Stephen Warren wrote:
>> On 07/29/2013 04:49 AM, hongbo.zhang@freescale.com wrote:

>>> +- ranges            : describes the mapping between the address space of the
>>> +                      DMA channels and the address space of the DMA controller
>>
>> Oh, so looking at the example, this is simply about being able to write
>> the reg value in the child nodes more easily without having to write out
>> the full based address of the controller in each child node.
>>
>> I don't think the binding document should require this;
> 
> It doesn't.  It just requires that there be a mapping; it doesn't have
> to be any particular mapping.
> 
>> all the binding document should care about is that the child nodes have a valid reg
>> value. Whether that reg value is <0x100100 0x80> without a ranges in the
>> top-level DMA
> 
> Without a ranges property there is no translation and the registers
> would not be memory mappable.  Linux may treat the absence of ranges as
> an identity mapping for compatibility with some broken OF trees, but
> it's not standard.

I would argue that missing ranges meaning 1:1 translation is now a
standard, given that it must be true to support some DTs, it therefore
can now be assumed?

>> nor or whether that reg value is <0x0 0x80> with a ranges
>> value in the top-level DMA node isn't something that the binding should
>> specify. Either way will work equally without affecting a driver for the
>> DMA controller; the parsing of reg with/without a ranges property is
>> more of a core part of DT than anything to do with this binding.
>>
>>> +- DMA channel nodes:
>>> +        - compatible        : must include "fsl,eloplus-dma-channel"
>>
>> Why do the channel nodes even need a compatible value? Presumably the
>> driver for the top-level DMA node will scan these dma-channel nodes to
>> extract the information it needs and will simply assume that all these
>> nodes are DMA channel nodes rather than something else? I suppose this
>> doesn't hurt, it just seems unnecessary unless you foresee other child
>> nodes types existing in the future and hence a need to differentiate
>> different types of nodes.
> 
> Other than "this is how the existing binding works and we're not going
> to break compatibility", it allows the OS more flexibility to choose
> whether to bind to controllers or directly to the channels.  Sometimes a
> channel will be labelled with a different compatible if it has a fixed
> purpose such as being connected to audio hardware (e.g. mpc8610_hpcd.dts
> where some channels are "fsl,ssi-dma-channel").

That sounds terribly like encoding policy into DT rather than it being a
HW description.

WARNING: multiple messages have this Message-ID (diff)
From: Stephen Warren <swarren@wwwdotorg.org>
To: Scott Wood <scottwood@freescale.com>
Cc: hongbo.zhang@freescale.com, vinod.koul@intel.com, djbw@fb.com,
	leoli@freescale.com, linuxppc-dev@lists.ozlabs.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 2/3] DMA: Freescale: Add new 8-channel DMA engine device tree nodes
Date: Wed, 21 Aug 2013 17:15:46 -0600	[thread overview]
Message-ID: <52154A22.4090809@wwwdotorg.org> (raw)
In-Reply-To: <1377125827.5029.50.camel@snotra.buserror.net>

On 08/21/2013 04:57 PM, Scott Wood wrote:
> On Wed, 2013-08-21 at 16:40 -0600, Stephen Warren wrote:
>> On 07/29/2013 04:49 AM, hongbo.zhang@freescale.com wrote:

>>> +- ranges            : describes the mapping between the address space of the
>>> +                      DMA channels and the address space of the DMA controller
>>
>> Oh, so looking at the example, this is simply about being able to write
>> the reg value in the child nodes more easily without having to write out
>> the full based address of the controller in each child node.
>>
>> I don't think the binding document should require this;
> 
> It doesn't.  It just requires that there be a mapping; it doesn't have
> to be any particular mapping.
> 
>> all the binding document should care about is that the child nodes have a valid reg
>> value. Whether that reg value is <0x100100 0x80> without a ranges in the
>> top-level DMA
> 
> Without a ranges property there is no translation and the registers
> would not be memory mappable.  Linux may treat the absence of ranges as
> an identity mapping for compatibility with some broken OF trees, but
> it's not standard.

I would argue that missing ranges meaning 1:1 translation is now a
standard, given that it must be true to support some DTs, it therefore
can now be assumed?

>> nor or whether that reg value is <0x0 0x80> with a ranges
>> value in the top-level DMA node isn't something that the binding should
>> specify. Either way will work equally without affecting a driver for the
>> DMA controller; the parsing of reg with/without a ranges property is
>> more of a core part of DT than anything to do with this binding.
>>
>>> +- DMA channel nodes:
>>> +        - compatible        : must include "fsl,eloplus-dma-channel"
>>
>> Why do the channel nodes even need a compatible value? Presumably the
>> driver for the top-level DMA node will scan these dma-channel nodes to
>> extract the information it needs and will simply assume that all these
>> nodes are DMA channel nodes rather than something else? I suppose this
>> doesn't hurt, it just seems unnecessary unless you foresee other child
>> nodes types existing in the future and hence a need to differentiate
>> different types of nodes.
> 
> Other than "this is how the existing binding works and we're not going
> to break compatibility", it allows the OS more flexibility to choose
> whether to bind to controllers or directly to the channels.  Sometimes a
> channel will be labelled with a different compatible if it has a fixed
> purpose such as being connected to audio hardware (e.g. mpc8610_hpcd.dts
> where some channels are "fsl,ssi-dma-channel").

That sounds terribly like encoding policy into DT rather than it being a
HW description.

  reply	other threads:[~2013-08-21 23:15 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-29 10:49 [PATCH v7 0/3] DMA: Freescale: Add support for 8-channel DMA engine hongbo.zhang
2013-07-29 10:49 ` hongbo.zhang
2013-07-29 10:49 ` hongbo.zhang
2013-07-29 10:49 ` [PATCH v7 1/3] DMA: Freescale: revise device tree binding document hongbo.zhang
2013-07-29 10:49   ` hongbo.zhang
2013-07-29 10:49   ` hongbo.zhang
2013-07-29 22:09   ` Scott Wood
2013-07-29 22:09     ` Scott Wood
2013-07-29 22:09     ` Scott Wood
2013-08-21 22:33   ` Stephen Warren
2013-08-21 22:33     ` Stephen Warren
2013-08-21 22:45     ` Scott Wood
2013-08-21 22:45       ` Scott Wood
2013-08-21 22:45       ` Scott Wood
2013-08-21 23:12       ` Stephen Warren
2013-08-21 23:12         ` Stephen Warren
2013-08-21 23:33         ` Scott Wood
2013-08-21 23:33           ` Scott Wood
2013-08-21 23:33           ` Scott Wood
2013-07-29 10:49 ` [PATCH v7 2/3] DMA: Freescale: Add new 8-channel DMA engine device tree nodes hongbo.zhang
2013-07-29 10:49   ` hongbo.zhang
2013-07-29 10:49   ` hongbo.zhang
2013-07-29 22:10   ` Scott Wood
2013-07-29 22:10     ` Scott Wood
2013-07-29 22:10     ` Scott Wood
2013-07-30  2:10     ` Hongbo Zhang
2013-07-30  2:10       ` Hongbo Zhang
2013-07-30  2:10       ` Hongbo Zhang
2013-08-21 22:40   ` Stephen Warren
2013-08-21 22:40     ` Stephen Warren
2013-08-21 22:57     ` Scott Wood
2013-08-21 22:57       ` Scott Wood
2013-08-21 22:57       ` Scott Wood
2013-08-21 23:15       ` Stephen Warren [this message]
2013-08-21 23:15         ` Stephen Warren
2013-08-21 23:31         ` Scott Wood
2013-08-21 23:31           ` Scott Wood
2013-08-21 23:31           ` Scott Wood
2013-08-22  0:27           ` Timur Tabi
2013-08-22  0:27             ` Timur Tabi
2013-08-21 23:00     ` Scott Wood
2013-08-21 23:00       ` Scott Wood
2013-08-21 23:00       ` Scott Wood
2013-08-21 23:16       ` Stephen Warren
2013-08-21 23:16         ` Stephen Warren
2013-08-23  3:17         ` Hongbo Zhang
2013-08-23  3:17           ` Hongbo Zhang
2013-08-23  3:17           ` Hongbo Zhang
2013-08-26 10:33           ` Hongbo Zhang
2013-08-26 10:33             ` Hongbo Zhang
2013-08-26 10:33             ` Hongbo Zhang
2013-07-29 10:49 ` [PATCH v7 3/3] DMA: Freescale: update driver to support 8-channel DMA engine hongbo.zhang
2013-07-29 10:49   ` hongbo.zhang
2013-07-29 10:49   ` hongbo.zhang
2013-07-29 10:59 ` [PATCH v7 0/3] DMA: Freescale: Add support for " Vinod Koul
2013-07-29 10:59   ` Vinod Koul
2013-07-30  2:08   ` Hongbo Zhang
2013-07-30  2:08     ` Hongbo Zhang
2013-07-30  2:08     ` Hongbo Zhang
2013-08-20  8:33   ` Hongbo Zhang
2013-08-20  8:33     ` Hongbo Zhang
2013-08-20  8:33     ` Hongbo Zhang
2013-08-20  8:15     ` Vinod Koul
2013-08-20  8:15       ` Vinod Koul
2013-08-21  6:59       ` Hongbo Zhang
2013-08-21  6:59         ` Hongbo Zhang
2013-08-21  6:59         ` Hongbo Zhang

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=52154A22.4090809@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=devicetree@vger.kernel.org \
    --cc=djbw@fb.com \
    --cc=hongbo.zhang@freescale.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=scottwood@freescale.com \
    --cc=vinod.koul@intel.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.