linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3] dma: tegra: register as an OF DMA controller
Date: Wed, 4 Dec 2013 02:34:09 +0100	[thread overview]
Message-ID: <201312040234.09708.arnd@arndb.de> (raw)
In-Reply-To: <1386102787-21839-1-git-send-email-swarren@wwwdotorg.org>

On Tuesday 03 December 2013, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
> 
> Call of_dma_controller_register() so that DMA clients can look up the
> Tegra DMA controller using standard APIs. This requires the of_xlate()
> function to save off the DMA slave ID, and for tegra_dma_slave_config()
> not to over-write this information; once DMA client drivers are converted
> to dma_request_slave_channel() and DT-based lookups, they won't set this
> field of struct dma_slave_config anymore.
> 
> Cc: treding at nvidia.com
> Cc: pdeschrijver at nvidia.com
> Cc: linux-tegra at vger.kernel.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: Dan Williams <dan.j.williams@intel.com>
> Cc: Vinod Koul <vinod.koul@intel.com>
> Cc: dmaengine at vger.kernel.org
> Signed-off-by: Stephen Warren <swarren@nvidia.com>

Looks great to me.

Acked-by: Arnd Bergmann <arnd@arndb.de>

but see my comments about the dma_get_any_slave_channel. If we want to merge
that function with the existing dma_get_slave_channel function (and change
the three existing users of that one), one line here will of course have
to change.

Also, one (long-running, not just for this driver) comment I have is
about this snippet:

> @@ -340,6 +342,8 @@ static int tegra_dma_slave_config(struct dma_chan *dc,
>         }
>  
>         memcpy(&tdc->dma_sconfig, sconfig, sizeof(*sconfig));
> +       if (!tdc->slave_id)
> +               tdc->slave_id = sconfig->slave_id;
>         tdc->config_init = true;
>         return 0;
>  }

We really need to be better at having a common set of rules regarding what
it actually means to set the slave_id through dma_slave_config(). IMHO
we should just treat it as a bug for any dmaengine driver that is configured
through DT, or we should get rid of this entirely. Looking through the
code now, I only see two dmaengine drivers that actually do this: one is 
the tegra driver (which you are about to change), the other one is shdma,
and that one is already a bit special. Any ideas?

	Arnd

  reply	other threads:[~2013-12-04  1:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-03 20:33 [PATCH V3] dma: tegra: register as an OF DMA controller Stephen Warren
2013-12-04  1:34 ` Arnd Bergmann [this message]
2013-12-04 17:27   ` Stephen Warren
2013-12-05  2:46     ` Arnd Bergmann
2013-12-04  9:45 ` Thierry Reding

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=201312040234.09708.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.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 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).