From: Tony Lindgren <tony@atomide.com>
To: Jon Hunter <jon-hunter@ti.com>
Cc: Vinod Koul <vinod.koul@intel.com>,
"Cousson, Benoit" <b-cousson@ti.com>,
Rob Herring <rob.herring@calxeda.com>,
Grant Likely <grant.likely@secretlab.ca>,
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: Wed, 20 Mar 2013 09:36:55 -0700 [thread overview]
Message-ID: <20130320163654.GN16413@atomide.com> (raw)
In-Reply-To: <51488C8B.4010206@ti.com>
* Jon Hunter <jon-hunter@ti.com> [130319 09:08]:
> 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);
AFAIK we don't currently have anything else touching this file..
> > 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?
OK
> It would be great if this could make v3.10.
I suggest Vinod/Grant/Linus W queue this patch:
Acked-by: Tony Lindgren <tony@atomide.com>
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver
Date: Wed, 20 Mar 2013 09:36:55 -0700 [thread overview]
Message-ID: <20130320163654.GN16413@atomide.com> (raw)
In-Reply-To: <51488C8B.4010206@ti.com>
* Jon Hunter <jon-hunter@ti.com> [130319 09:08]:
> 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);
AFAIK we don't currently have anything else touching this file..
> > 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?
OK
> It would be great if this could make v3.10.
I suggest Vinod/Grant/Linus W queue this patch:
Acked-by: Tony Lindgren <tony@atomide.com>
next prev parent reply other threads:[~2013-03-20 16:37 UTC|newest]
Thread overview: 24+ 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 ` Jon Hunter
2013-02-26 18:27 ` [PATCH V3 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes Jon Hunter
2013-02-26 18:27 ` Jon Hunter
2013-03-12 11:00 ` Benoit Cousson
2013-03-12 11:00 ` Benoit Cousson
2013-03-12 21:43 ` Jon Hunter
2013-03-12 21:43 ` Jon Hunter
2013-03-13 15:35 ` Benoit Cousson
2013-03-13 15:35 ` Benoit Cousson
2013-03-13 15:50 ` Jon Hunter
2013-03-13 15:50 ` Jon Hunter
2013-03-13 16:11 ` Benoit Cousson
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-02-26 18:27 ` Jon Hunter
2013-03-19 16:04 ` Jon Hunter
2013-03-19 16:04 ` Jon Hunter
2013-03-20 16:36 ` Tony Lindgren [this message]
2013-03-20 16:36 ` Tony Lindgren
2013-04-01 17:48 ` Jon Hunter
2013-04-01 17:48 ` Jon Hunter
2013-04-01 18:26 ` Vinod Koul
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=20130320163654.GN16413@atomide.com \
--to=tony@atomide.com \
--cc=b-cousson@ti.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=jon-hunter@ti.com \
--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=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.