From: Arnd Bergmann <arnd@arndb.de>
To: Ben Dooks <ben.dooks@codethink.co.uk>
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,
horms@verge.net.au, g.liakhovetski@gmx.d,
kuninori.morimoto.gx@renesas.com, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 8/9] DMA: shdma: initial of common code
Date: Tue, 15 Apr 2014 00:06:22 +0200 [thread overview]
Message-ID: <4431489.B0PGdfS6ct@wuerfel> (raw)
In-Reply-To: <1397511312-4845-9-git-send-email-ben.dooks@codethink.co.uk>
On Monday 14 April 2014 22:35:11 Ben Dooks wrote:
> Add support for building shdma internal data from the device tree to allow
> converting the driver to be device tree enabled.
>
> It includes a helper for the of case to build the internal data used to
> select and filter out the DMA channels from the ID information in the
> device tree. Also updates the documentation for the DT case.
>
> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
I think you should try to explain better here why you need all the logic
that other drivers don't for the DT case.
I've tried to understand what you are doing with shdma_of_client and
couldn't quite figure it out. The driver is already different from
all the others, because it still uses the 'slave_id' field in
dma_slave_config (only for the non-DT case) that all other drivers
don't use at all.
My guess is that if you manage to clean that up first, all of this
wouldn't be necessary.
> static struct dma_chan *shdma_of_xlate(struct of_phandle_args *dma_spec,
> struct of_dma *ofdma)
> {
> + struct platform_device *pdev = ofdma->of_dma_data;
> u32 id = dma_spec->args[0];
> dma_cap_mask_t mask;
> struct dma_chan *chan;
>
> - if (dma_spec->args_count != 1)
> + if (dma_spec->args_count == 2) {
> + struct shdma_of_state *state = platform_get_drvdata(pdev);
> + struct shdma_of_client *client;
> +
> + client = shdma_of_find_client(state, id);
> + if (!client) {
> + client = devm_kzalloc(&pdev->dev, sizeof(*client),
> + GFP_KERNEL);
> + if (!client)
> + return NULL;
> +
> + client->index = atomic_inc_return(&of_slave_index);
> + client->cfg.slave_id = id;
> + client->cfg.mid_rid = id;
> + client->cfg.chcr = dma_spec->args[1];
Can you explain the purpose of setting the chcr in DT? For all I can
tell, this should come from the device driver when that calls the
dma_slave_config function, unlike the mid_rid value.
Arnd
next prev parent reply other threads:[~2014-04-14 22:06 UTC|newest]
Thread overview: 31+ 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
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-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-04-14 21:35 ` [PATCH v2 8/9] DMA: shdma: initial of common code Ben Dooks
2014-04-14 22:06 ` Arnd Bergmann [this message]
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=4431489.B0PGdfS6ct@wuerfel \
--to=arnd@arndb.de \
--cc=ben.dooks@codethink.co.uk \
--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).