linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ben Dooks <ben.dooks@codethink.co.uk>
To: Simon Horman <horms@verge.net.au>, Arnd Bergmann <arnd@arndb.de>
Cc: linux-kernel@lists.codethink.co.uk, dmaengine@vger.kernel.org,
	vinod.koul@intel.com, dan.j.williams@intel.com,
	linux-sh@vger.kernel.org, magnus.damm@opensource.se,
	g.liakhovetski@gmx.d, kuninori.morimoto.gx@renesas.com,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v2 2/9] ARM: shmobile: r8a7790: add dma defines for sys and audio dmacs
Date: Tue, 15 Apr 2014 09:46:17 +0000	[thread overview]
Message-ID: <534CFFE9.2050100@codethink.co.uk> (raw)
In-Reply-To: <20140414225151.GF22518@verge.net.au>

On 14/04/14 23:51, Simon Horman wrote:
> On Tue, Apr 15, 2014 at 12:10:00AM +0200, Arnd Bergmann wrote:
>> On Monday 14 April 2014 22:35:05 Ben Dooks wrote:
>>> Add the DMA resource IDs for the R8A7790 Audio and SYS DMA controllers
>>> for use when specifying DMA handles.
>>>
>>> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
>>
>> I really hate these lists in bindings:
>>
>>> +#define R8A7790_DMA_SCIFA0_TX	(0x21)
>>> +#define R8A7790_DMA_SCIFA0_RX	(0x22)
>>> +#define R8A7790_DMA_SCIFA1_TX	(0x25)
>>> +#define R8A7790_DMA_SCIFA1_RX	(0x26)
>>> +#define R8A7790_DMA_SCIFA2_TX	(0x27)
>>> +#define R8A7790_DMA_SCIFA2_RX	(0x28)
>>> +
>>> +#define R8A7790_DMA_SCIFB0_TX	(0x3D)
>>> +#define R8A7790_DMA_SCIFB0_RX	(0x3E)
>>> +#define R8A7790_DMA_SCIFB1_TX	(0x19)
>>> +#define R8A7790_DMA_SCIFB1_RX	(0x1A)
>>> +#define R8A7790_DMA_SCIFB2_TX	(0x1D)
>>> +#define R8A7790_DMA_SCIFB2_RX	(0x1E)
>>
>> These are all hardware constants, they should come from the data sheet and
>> get put into the dtsi file. The driver doesn't care what they are, and
>> the binding doesn't care, this only serves to make the binding less
>> generic.
>
> They serve to make the dts file significantly more readable and
> give some small level of compile-time checking to the dts file.
>
> I am entirely in favour of them and its the direction that we
> have been moving in for shmobile bindings.

I don't really mind either way on these, when we had the
configuration for each slave in the dma-controller node
then having defines was very sensible.

>>> +#define CHCR_RX_32BIT	SHDMA_ARM_CHCR_RX(SHDMA_ARM_SZ_32BIT)
>>> +#define CHCR_TX_32BIT	SHDMA_ARM_CHCR_TX(SHDMA_ARM_SZ_32BIT)
>>> +#define CHCR_RX_256BIT	SHDMA_ARM_CHCR_RX(SHDMA_ARM_SZ_256BIT)
>>> +#define CHCR_TX_256BIT	SHDMA_ARM_CHCR_TX(SHDMA_ARM_SZ_256BIT)
>>
>> For these, it's different: There is nothing wrong putting macros like
>> these into DT, because they will be the same across all SoCs.
>>
>> However, as I mentioned in my reply to patch 8, I don't think that information
>> belongs into DT, and it should be in the device driver instead, because
>> that already knows the direction and transfer width and has to set it
>> through the slave config interface anyway.

There are a couple of issues here, firstly is that I have no idea if
any other SoCs have control bits that are not currently configurable
from the information supplied by a driver when it is bound.

The second is that the DMA for some peripherals do not match the size
of the registers, for example the SDHI blocks can do 256bit DMA to
what is specified to be a 32bit register.

I also prefer these to be in one place, to avoid the following

- Altering every $OS run on the system when you add a new dma peripheral
- Having to cross merge adding to DTS/DTSI and a driver for the same.


-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius

  reply	other threads:[~2014-04-15  9:46 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-14 21:35 Updates Renesas OF-DMA code Ben Dooks
2014-04-14 21:35 ` [PATCH v2 1/9] ARM: shmobile: r8a7790: add dmac0,dmac1 clocks Ben Dooks
2014-05-13  9:23   ` Geert Uytterhoeven
2014-06-04 15:54     ` Ben Dooks
2014-04-14 21:35 ` [PATCH v2 2/9] ARM: shmobile: r8a7790: add dma defines for sys and audio dmacs Ben Dooks
2014-04-14 22:10   ` Arnd Bergmann
2014-04-14 22:51     ` Simon Horman
2014-04-15  9:46       ` Ben Dooks [this message]
2014-05-13  8:51   ` Geert Uytterhoeven
2014-05-13 10:46   ` Geert Uytterhoeven
     [not found]     ` <CAMuHMdUsRSGuGgnAgjKtOWmx3C_PWUxAU=2XTvPE1M9o13S1uA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-05-27  8:08       ` Geert Uytterhoeven
2014-09-24 12:27   ` [PATCH v2 2/9] ARM: shmobile: r8a7790: Add DU node to device tree Laurent Pinchart
2014-04-14 21:35 ` [PATCH v2 3/9] ARM: shmobile: r8a7790: add dmac0 dmac1 nodes Ben Dooks
     [not found]   ` <1397511312-4845-4-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2014-05-13 12:00     ` Geert Uytterhoeven
     [not found]       ` <CAMuHMdUNAFJEFWYe5cpKaZqoZFhRA1s0YBntT5ZVJaieSj8ovQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-04 16:04         ` Ben Dooks
2014-05-15 13:11   ` Geert Uytterhoeven
2014-04-14 21:35 ` [PATCH v2 4/9] ARM: shmobile: r8a7790: Add DMA for MMCIF1 Ben Dooks
2014-04-14 21:35 ` [PATCH v2 5/9] ARM: shmobile: add Audio DMAC clocks Ben Dooks
2014-04-14 21:35 ` [PATCH v2 6/9] ARM: shmobile: r8a7790: add audio dmac node Ben Dooks
2014-05-13  8:53   ` Geert Uytterhoeven
2014-05-13 12:10   ` Geert Uytterhoeven
2014-05-15 13:12   ` Geert Uytterhoeven
     [not found] ` <1397511312-4845-1-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2014-04-14 21:35   ` [PATCH v2 7/9] ARM: shmobile: lager: enable sysdma units 0 and 1 Ben Dooks
2014-09-24 12:27     ` [PATCH v2 7/9] ARM: shmobile: lager: Enable DU device in DT Laurent Pinchart
2014-09-24 13:01     ` Sergei Shtylyov
2014-09-24 13:09     ` Laurent Pinchart
2014-04-14 21:35 ` [PATCH v2 8/9] DMA: shdma: initial of common code Ben Dooks
2014-04-14 22:06   ` Arnd Bergmann
2014-04-15  9:54     ` Ben Dooks
2014-05-21 20:14       ` Geert Uytterhoeven
2014-06-04 15:54         ` Ben Dooks
2014-04-14 21:35 ` [PATCH v2 9/9] DMA: shdma: wire r8a7790 Ben Dooks
2014-04-15 12:20   ` Sergei Shtylyov
2014-04-18  1:32   ` Kuninori Morimoto
2014-04-23 13:08     ` Ben Dooks

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=534CFFE9.2050100@codethink.co.uk \
    --to=ben.dooks@codethink.co.uk \
    --cc=arnd@arndb.de \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=g.liakhovetski@gmx.d \
    --cc=horms@verge.net.au \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-kernel@lists.codethink.co.uk \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@opensource.se \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).