devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Vinod Koul <vinod.koul-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	Viresh Kumar
	<viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	spear-devel <spear-devel-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org>,
	Andy Shevchenko
	<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH 1/5] dmaengine: dw_dmac: move to generic DMA binding
Date: Tue, 29 Jan 2013 10:50:23 +0000	[thread overview]
Message-ID: <201301291050.23743.arnd@arndb.de> (raw)
In-Reply-To: <1359445171.31148.30.camel@smile>

(putting back the Cc list, I assumed you dropped them accidentally)

On Tuesday 29 January 2013, Andy Shevchenko wrote:
> On Mon, 2013-01-28 at 21:58 +0000, Arnd Bergmann wrote: 
> > -	if ((last_dw == dw) && (last_bus_id == param))
> > +	/* both the driver and the device must match */
> > +        if (chan->device->dev->driver != &dw_driver.driver)
> 
> Could we somehow pass the &.driver to the generic filter function (via
> *_dma_controller_register() ? ) and do this to each DMA driver?

My hope is still that we can avoid using filter functions entirely
when we use xlate() logic, and instead just go through the channels
of the dma engine we know we are looking at.

I would also assume that the argument passed to *_dma_controller_register
normally holds a pointer to the dma device. Now that I think about it,
the check 'if (dw != fargs->dw)' already implies that we are looking
at the correct driver, but it feels dirty to cast a random dma_device
pointer to a driver specific one before we know which driver it is
for.

However, since we have a valid pointer to a dw_dma object, we can
extract the driver from there:

	struct dw_dma_filter_args *fargs = param;
	struct dma_device *ddev = &fargs->dw->dma;
	if (dma != chan->device)
		return -EINVAL;

which is simpler and cleaner that what I had.

> > +	sd->dma_dev	= dw->dma.dev;
> > +	sd->cfg_hi	= fargs->cfg_hi;
> > +	sd->cfg_lo	= fargs->cfg_lo;
> > +	sd->src_master	= fargs->src;
> > +	sd->dst_master	= fargs->dst;
> 
> Could we use fargs structure directly?

We could probably have no fargs but use the dw_dma_slave structure
directly to pass the data, if cannot figure out a way to avoid
the need for a filter function.  I thought about doing that, but
intermediate versions of my patch had a different layout here.

	Arnd

  parent reply	other threads:[~2013-01-29 10:50 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-28 17:57 [PATCH 0/5] dmaengine: convert dw_dmac/spear13xx to generic binding Arnd Bergmann
     [not found] ` <1359395857-1235-1-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-28 17:57   ` [PATCH 1/5] dmaengine: dw_dmac: move to generic DMA binding Arnd Bergmann
2013-01-28 17:57   ` [PATCH 2/5] spi: pl022: use generic DMA slave configuration if possible Arnd Bergmann
     [not found]     ` <1359395857-1235-3-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-02-05 14:22       ` Grant Likely
2013-02-07 18:27       ` Linus Walleij
2013-01-28 17:57   ` [PATCH 3/5] serial: pl011: " Arnd Bergmann
     [not found]     ` <1359395857-1235-4-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-02-05 14:22       ` Grant Likely
2013-01-28 17:57   ` [PATCH 4/5] ata: arasan: remove the need for platform_data Arnd Bergmann
2013-01-28 17:57   ` [PATCH 5/5] ARM: SPEAr13xx: Pass generic DW DMAC platform data from DT Arnd Bergmann
2013-01-28 21:58   ` [PATCH v2 0/5] dmaengine: convert dw_dmac/spear13xx to generic binding Arnd Bergmann
     [not found]     ` <1359410300-26113-1-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-28 21:58       ` [PATCH 1/5] dmaengine: dw_dmac: move to generic DMA binding Arnd Bergmann
     [not found]         ` <1359445171.31148.30.camel@smile>
2013-01-29 10:50           ` Arnd Bergmann [this message]
     [not found]             ` <201301291050.23743.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29 11:18               ` Russell King - ARM Linux
     [not found]                 ` <20130129111850.GR23505-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-01-29 13:44                   ` Arnd Bergmann
     [not found]                     ` <201301291344.11066.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29 14:24                       ` Russell King - ARM Linux
     [not found]                         ` <20130129142434.GW23505-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-01-29 14:55                           ` Arnd Bergmann
     [not found]                             ` <201301291455.49347.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29 15:44                               ` Russell King - ARM Linux
     [not found]                                 ` <20130129154409.GA23505-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-01-29 16:36                                   ` Arnd Bergmann
     [not found]                                     ` <201301291636.38773.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29 17:45                                       ` Russell King - ARM Linux
     [not found]                                         ` <20130129174546.GE23505-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-01-29 20:40                                           ` Arnd Bergmann
2013-01-29 21:59                                             ` Linus Walleij
     [not found]         ` <1359410300-26113-2-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29  7:24           ` Viresh Kumar
     [not found]             ` <CAKohpomO6tYNYLdMOaJYgqGecXj5KMQprdb=gExi+QuGrtLTzw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-29 10:35               ` Arnd Bergmann
     [not found]                 ` <201301291035.30265.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29 10:49                   ` Viresh Kumar
     [not found]                     ` <CAKohpo=rD9=dEaPkKYcj55K4_ebdnU7qjv2TZBUwqHAB+Kk+aw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-29 10:54                       ` Andy Shevchenko
2013-01-29 10:57                         ` Viresh Kumar
     [not found]                           ` <CAKohpokZfQZ17PmQjS2ntN9js7=SxNkiwWpX2aD8cZcM9L0ydw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-29 11:14                             ` Andy Shevchenko
2013-01-29 13:31                       ` Arnd Bergmann
     [not found]                         ` <201301291331.48427.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29 13:45                           ` Andy Shevchenko
2013-01-29 14:26                             ` Russell King - ARM Linux
2013-01-29 15:28                             ` Arnd Bergmann
2013-01-29 15:17                           ` Viresh Kumar
     [not found]                             ` <CAKohpoms+WC_XJnH2b6uoycRKkF-yxZUg2J+8NrYJP8fnDNLtg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-29 16:21                               ` Arnd Bergmann
     [not found]                                 ` <201301291621.59425.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-30  2:04                                   ` Viresh Kumar
     [not found]                                     ` <CAKohpon30hB9S+MUyXwZpefAGQE4hvF36d-6jXNRk_XoK5dwww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-30  9:41                                       ` Arnd Bergmann
     [not found]                                         ` <201301300941.35886.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-30  9:48                                           ` Viresh Kumar
     [not found]                                             ` <CAOh2x==WZePgfTWwL0vPdE693n44vW05OS=DSqbnDCs2xzHXuw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-30 10:08                                               ` Arnd Bergmann
     [not found]                                                 ` <201301301008.31196.arnd-r2nGTMty4D4@public.gmane.org>
2013-01-30 10:32                                                   ` Viresh Kumar
2013-02-15  8:50           ` Andy Shevchenko
2013-02-15 11:17             ` Arnd Bergmann
2013-01-28 21:58       ` [PATCH 2/5] spi: pl022: use generic DMA slave configuration if possible Arnd Bergmann
     [not found]         ` <1359410300-26113-3-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29  2:41           ` Mark Brown
2013-01-29  7:49           ` Andy Shevchenko
2013-01-29 13:13             ` Arnd Bergmann
     [not found]               ` <201301291313.03511.arnd-r2nGTMty4D4@public.gmane.org>
2013-02-07 18:29                 ` Linus Walleij
     [not found]                   ` <CACRpkdZNpCJwp-uaH6feTcaPesNouwpHt-hO-M9v52G=Ux+Hqw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-02-07 19:42                     ` Arnd Bergmann
     [not found]                       ` <201302071942.54642.arnd-r2nGTMty4D4@public.gmane.org>
2013-02-07 20:19                         ` Linus Walleij
     [not found]                           ` <CACRpkdbunPGtR4p_kY4q8WEb8iwkEbdo_icDyrLZwKrCe0wXqw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-02-07 21:15                             ` Arnd Bergmann
2013-02-08 16:22                               ` Russell King - ARM Linux
2013-02-08 16:28                                 ` Arnd Bergmann
2013-02-08 22:10                                   ` Linus Walleij
2013-02-08 16:20                     ` Russell King - ARM Linux
2013-01-28 21:58       ` [PATCH 3/5] serial: pl011: " Arnd Bergmann
     [not found]         ` <1359410300-26113-4-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-30  4:38           ` Greg Kroah-Hartman
2013-01-28 21:58       ` [PATCH 4/5] ata: arasan: remove the need for platform_data Arnd Bergmann
     [not found]         ` <1359410300-26113-5-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29  8:18           ` Viresh Kumar
2013-01-28 21:58     ` [PATCH 5/5] ARM: SPEAr13xx: Pass generic DW DMAC platform data from DT Arnd Bergmann
     [not found]       ` <1359410300-26113-6-git-send-email-arnd-r2nGTMty4D4@public.gmane.org>
2013-01-29  8:16         ` Viresh Kumar
     [not found]           ` <CAKohpokrvYDaMgB-5HV+bJh01YNU4H5UrSUnzxa_NpvE1qQqiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-29 13:21             ` Arnd Bergmann
2013-04-19 20:38   ` [PATCH 0/5] dmaengine: convert dw_dmac/spear13xx to generic binding Arnd Bergmann

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=201301291050.23743.arnd@arndb.de \
    --to=arnd-r2ngtmty4d4@public.gmane.org \
    --cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=spear-devel-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org \
    --cc=vinod.koul-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@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 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).