All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Alexander Popov <a13xp0p0v88@gmail.com>
Cc: devicetree@vger.kernel.org, Lars-Peter Clausen <lars@metafoo.de>,
	Vinod Koul <vinod.koul@intel.com>, Gerhard Sittig <gsi@denx.de>,
	Dan Williams <dan.j.williams@intel.com>,
	Anatolij Gustschin <agust@denx.de>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH RFC v5 3/5] dma: of: Add common xlate function for matching by channel id
Date: Fri, 1 Nov 2013 08:52:05 +0100	[thread overview]
Message-ID: <201311010852.05709.arnd@arndb.de> (raw)
In-Reply-To: <1383290374-17484-4-git-send-email-a13xp0p0v88@gmail.com>

On Friday 01 November 2013, Alexander Popov wrote:

> + * of_dma_xlate_by_chan_id - Translate dt property to DMA channel by channel id
> + * @dma_spec:	pointer to DMA specifier as found in the device tree
> + * @of_dma:	pointer to DMA controller data
> + *
> + * This function can be used as the of xlate callback for DMA driver which wants
> + * to match the channel based on the channel id. When using this xlate function
> + * the #dma-cells propety of the DMA controller dt node needs to be set to 1.
> + * The data parameter of of_dma_controller_register must be a pointer to the
> + * dma_device struct the function should match upon.
> + *
> + * Returns pointer to appropriate dma channel on success or NULL on error.
> + */
> +struct dma_chan *of_dma_xlate_by_chan_id(struct of_phandle_args *dma_spec,
> +					 struct of_dma *ofdma)
> +{
> +	struct of_dma_filter_by_chan_id_args args;
> +	dma_cap_mask_t cap;
> +
> +	args.dev = ofdma->of_dma_data;
> +	if (!args.dev)
> +		return NULL;
> +
> +	if (dma_spec->args_count != 1)
> +		return NULL;
> +
> +	dma_cap_zero(cap);
> +	dma_cap_set(DMA_SLAVE, cap);
> +
> +	args.chan_id = dma_spec->args[0];
> +
> +	return dma_request_channel(cap, of_dma_filter_by_chan_id, &args);
> +}
> +EXPORT_SYMBOL_GPL(of_dma_xlate_by_chan_id);

This seems rather clumsy, now that we have added the dma_get_slave_channel interface.
Can you try using that instead of dma_request_channel() now?

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Alexander Popov <a13xp0p0v88-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Gerhard Sittig <gsi-ynQEQJNshbs@public.gmane.org>,
	Dan Williams
	<dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
	Anatolij Gustschin <agust-ynQEQJNshbs@public.gmane.org>,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH RFC v5 3/5] dma: of: Add common xlate function for matching by channel id
Date: Fri, 1 Nov 2013 08:52:05 +0100	[thread overview]
Message-ID: <201311010852.05709.arnd@arndb.de> (raw)
In-Reply-To: <1383290374-17484-4-git-send-email-a13xp0p0v88-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On Friday 01 November 2013, Alexander Popov wrote:

> + * of_dma_xlate_by_chan_id - Translate dt property to DMA channel by channel id
> + * @dma_spec:	pointer to DMA specifier as found in the device tree
> + * @of_dma:	pointer to DMA controller data
> + *
> + * This function can be used as the of xlate callback for DMA driver which wants
> + * to match the channel based on the channel id. When using this xlate function
> + * the #dma-cells propety of the DMA controller dt node needs to be set to 1.
> + * The data parameter of of_dma_controller_register must be a pointer to the
> + * dma_device struct the function should match upon.
> + *
> + * Returns pointer to appropriate dma channel on success or NULL on error.
> + */
> +struct dma_chan *of_dma_xlate_by_chan_id(struct of_phandle_args *dma_spec,
> +					 struct of_dma *ofdma)
> +{
> +	struct of_dma_filter_by_chan_id_args args;
> +	dma_cap_mask_t cap;
> +
> +	args.dev = ofdma->of_dma_data;
> +	if (!args.dev)
> +		return NULL;
> +
> +	if (dma_spec->args_count != 1)
> +		return NULL;
> +
> +	dma_cap_zero(cap);
> +	dma_cap_set(DMA_SLAVE, cap);
> +
> +	args.chan_id = dma_spec->args[0];
> +
> +	return dma_request_channel(cap, of_dma_filter_by_chan_id, &args);
> +}
> +EXPORT_SYMBOL_GPL(of_dma_xlate_by_chan_id);

This seems rather clumsy, now that we have added the dma_get_slave_channel interface.
Can you try using that instead of dma_request_channel() now?

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2013-11-01  7:57 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-01  7:19 [PATCH RFC v5 0/5] MPC512x DMA slave s/g support, OF DMA lookup Alexander Popov
2013-11-01  7:19 ` Alexander Popov
2013-11-01  7:19 ` [PATCH RFC v5 1/5] dma: mpc512x: reorder mpc8308 specific instructions Alexander Popov
2013-11-01  7:19   ` Alexander Popov
2013-11-01 10:04   ` Anatolij Gustschin
2013-11-01 10:04     ` Anatolij Gustschin
2013-11-11 20:01     ` Gerhard Sittig
2013-11-01  7:19 ` [PATCH RFC v5 2/5] dma: mpc512x: add support for peripheral transfers Alexander Popov
2013-11-01  7:19   ` Alexander Popov
2013-11-11 20:10   ` Gerhard Sittig
2013-11-11 20:10     ` Gerhard Sittig
2013-11-12 12:23     ` Alexander Popov
2013-11-12 12:23       ` Alexander Popov
2013-11-14 20:58       ` Gerhard Sittig
2013-11-14 20:58         ` Gerhard Sittig
2013-11-20  6:49         ` Alexander Popov
2013-11-20  6:49           ` Alexander Popov
2013-11-01  7:19 ` [PATCH RFC v5 3/5] dma: of: Add common xlate function for matching by channel id Alexander Popov
2013-11-01  7:19   ` Alexander Popov
2013-11-01  7:52   ` Arnd Bergmann [this message]
2013-11-01  7:52     ` Arnd Bergmann
2013-11-07 11:33     ` Alexander Popov
2013-11-07 11:33       ` Alexander Popov
2013-11-01  7:19 ` [PATCH RFC v5 4/5] dma: mpc512x: register for device tree channel lookup Alexander Popov
2013-11-01  7:19   ` Alexander Popov
2013-11-18 12:09   ` Mark Rutland
2013-11-18 12:09     ` Mark Rutland
2013-11-18 14:31     ` Arnd Bergmann
2013-11-18 14:31       ` Arnd Bergmann
2013-11-18 15:23       ` Mark Rutland
2013-11-18 15:23         ` Mark Rutland
2013-11-01  7:19 ` [PATCH RFC v5 5/5] HACK mmc: mxcmmc: enable clocks for the MPC512x Alexander Popov
2013-11-01  7:19   ` Alexander Popov

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=201311010852.05709.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=a13xp0p0v88@gmail.com \
    --cc=agust@denx.de \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gsi@denx.de \
    --cc=lars@metafoo.de \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --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.