From: Jon Hunter <jon-hunter@ti.com>
To: Jon Hunter <jon-hunter@ti.com>, Tony Lindgren <tony@atomide.com>,
Vinod Koul <vinod.koul@intel.com>
Cc: Rob Herring <rob.herring@calxeda.com>,
Grant Likely <grant.likely@secretlab.ca>,
Benoit Cousson <b-cousson@ti.com>,
Russell King <linux@arm.linux.org.uk>,
device-tree <devicetree-discuss@lists.ozlabs.org>,
linux-omap <linux-omap@vger.kernel.org>,
linux-arm <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH V3 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver
Date: Tue, 19 Mar 2013 11:04:27 -0500 [thread overview]
Message-ID: <51488C8B.4010206@ti.com> (raw)
In-Reply-To: <1361903244-19837-3-git-send-email-jon-hunter@ti.com>
Vinod, Tony, Benoit,
On 02/26/2013 12:27 PM, Jon Hunter wrote:
> If the device-tree blob is present during boot, then register the SDMA
> controller with the device-tree DMA driver so that we can use device-tree
> to look-up DMA client information.
>
> Signed-off-by: Jon Hunter <jon-hunter@ti.com>
> Reviewed-by: Felipe Balbi <balbi@ti.com>
> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
> arch/arm/mach-omap2/dma.c | 4 ++++
> drivers/dma/omap-dma.c | 38 ++++++++++++++++++++++++++++++++++++--
> 2 files changed, 40 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c
> index dab9fc0..49fd0d5 100644
> --- a/arch/arm/mach-omap2/dma.c
> +++ b/arch/arm/mach-omap2/dma.c
> @@ -28,6 +28,7 @@
> #include <linux/init.h>
> #include <linux/device.h>
> #include <linux/dma-mapping.h>
> +#include <linux/of.h>
> #include <linux/omap-dma.h>
>
> #include "soc.h"
> @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void)
> if (res)
> return res;
>
> + if (of_have_populated_dt())
> + return res;
> +
> pdev = platform_device_register_full(&omap_dma_dev_info);
> if (IS_ERR(pdev))
> return PTR_ERR(pdev);
> diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c
> index c4b4fd2..2ea3d7e 100644
> --- a/drivers/dma/omap-dma.c
> +++ b/drivers/dma/omap-dma.c
> @@ -16,6 +16,8 @@
> #include <linux/platform_device.h>
> #include <linux/slab.h>
> #include <linux/spinlock.h>
> +#include <linux/of_dma.h>
> +#include <linux/of_device.h>
>
> #include "virt-dma.h"
>
> @@ -67,6 +69,10 @@ static const unsigned es_bytes[] = {
> [OMAP_DMA_DATA_TYPE_S32] = 4,
> };
>
> +static struct of_dma_filter_info omap_dma_info = {
> + .filter_fn = omap_dma_filter_fn,
> +};
> +
> static inline struct omap_dmadev *to_omap_dma_dev(struct dma_device *d)
> {
> return container_of(d, struct omap_dmadev, ddev);
> @@ -621,8 +627,22 @@ static int omap_dma_probe(struct platform_device *pdev)
> pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n",
> rc);
> omap_dma_free(od);
> - } else {
> - platform_set_drvdata(pdev, od);
> + return rc;
> + }
> +
> + platform_set_drvdata(pdev, od);
> +
> + if (pdev->dev.of_node) {
> + omap_dma_info.dma_cap = od->ddev.cap_mask;
> +
> + /* Device-tree DMA controller registration */
> + rc = of_dma_controller_register(pdev->dev.of_node,
> + of_dma_simple_xlate, &omap_dma_info);
> + if (rc) {
> + pr_warn("OMAP-DMA: failed to register DMA controller\n");
> + dma_async_device_unregister(&od->ddev);
> + omap_dma_free(od);
> + }
> }
>
> dev_info(&pdev->dev, "OMAP DMA engine driver\n");
> @@ -634,18 +654,32 @@ static int omap_dma_remove(struct platform_device *pdev)
> {
> struct omap_dmadev *od = platform_get_drvdata(pdev);
>
> + if (pdev->dev.of_node)
> + of_dma_controller_free(pdev->dev.of_node);
> +
> dma_async_device_unregister(&od->ddev);
> omap_dma_free(od);
>
> return 0;
> }
>
> +static const struct of_device_id omap_dma_match[] = {
> + { .compatible = "ti,omap2420-sdma", },
> + { .compatible = "ti,omap2430-sdma", },
> + { .compatible = "ti,omap3430-sdma", },
> + { .compatible = "ti,omap3630-sdma", },
> + { .compatible = "ti,omap4430-sdma", },
> + {},
> +};
> +MODULE_DEVICE_TABLE(of, omap_dma_match);
> +
> static struct platform_driver omap_dma_driver = {
> .probe = omap_dma_probe,
> .remove = omap_dma_remove,
> .driver = {
> .name = "omap-dma-engine",
> .owner = THIS_MODULE,
> + .of_match_table = of_match_ptr(omap_dma_match),
> },
> };
Who's tree does it make most sense for this patch to go through?
Benoit has queued up patch 1/2 and so I am not sure if this should go
via Benoit tree to Tony or directly via Vinod's tree. What are your
thoughts?
It would be great if this could make v3.10.
Cheers
Jon
next prev parent reply other threads:[~2013-03-19 16:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-26 18:27 [PATCH V3 0/2] ARM: dts: Add DT bindings for OMAP SDMA Jon Hunter
2013-02-26 18:27 ` [PATCH V3 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes Jon Hunter
2013-03-12 11:00 ` Benoit Cousson
2013-03-12 21:43 ` Jon Hunter
2013-03-13 15:35 ` Benoit Cousson
2013-03-13 15:50 ` Jon Hunter
2013-03-13 16:11 ` Benoit Cousson
2013-02-26 18:27 ` [PATCH V3 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver Jon Hunter
2013-03-19 16:04 ` Jon Hunter [this message]
2013-03-20 16:36 ` Tony Lindgren
2013-04-01 17:48 ` Jon Hunter
2013-04-01 18:26 ` Vinod Koul
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=51488C8B.4010206@ti.com \
--to=jon-hunter@ti.com \
--cc=b-cousson@ti.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=rob.herring@calxeda.com \
--cc=tony@atomide.com \
--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).