From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 2/4] dmaengine: at_hdmac: add device tree support
Date: Thu, 13 Oct 2011 13:54:09 +0200 [thread overview]
Message-ID: <4E96D161.8050602@atmel.com> (raw)
In-Reply-To: <20111013003422.GE14042@ponder.secretlab.ca>
On 10/13/2011 02:34 AM, Grant Likely :
> On Wed, Oct 12, 2011 at 06:57:12PM +0200, Nicolas Ferre wrote:
>> Add device tree probe support for atmel at_hdmac DMA driver.
>> Bindings are added to specify DMA controller configuration.
>>
>> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
>> ---
>> .../devicetree/bindings/dma/atmel-dma.txt | 14 +++++++++
>> drivers/dma/at_hdmac.c | 30 +++++++++++++++++++-
>> 2 files changed, 43 insertions(+), 1 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/dma/atmel-dma.txt
>>
>> diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt
>> new file mode 100644
>> index 0000000..3c046ee
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt
>> @@ -0,0 +1,14 @@
>> +* Atmel Direct Memory Access Controller (DMA)
>> +
>> +Required properties:
>> +- compatible: Should be "atmel,<chip>-dma"
>> +- reg: Should contain DMA registers location and length
>> +- interrupts: Should contain DMA interrupt
>> +
>> +Examples:
>> +
>> +dma at ffffec00 {
>> + compatible = "atmel,at91sam9g45-dma";
>> + reg = <0xffffec00 0x200>;
>> + interrupts = <21>;
>> +};
>> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
>> index d1869c5..42bd64c 100644
>> --- a/drivers/dma/at_hdmac.c
>> +++ b/drivers/dma/at_hdmac.c
>> @@ -23,6 +23,8 @@
>> #include <linux/module.h>
>> #include <linux/platform_device.h>
>> #include <linux/slab.h>
>> +#include <linux/of.h>
>> +#include <linux/of_device.h>
>>
>> #include "at_hdmac_regs.h"
>>
>> @@ -1175,6 +1177,20 @@ static void atc_free_chan_resources(struct dma_chan *chan)
>>
>> /*-- Module Management -----------------------------------------------*/
>>
>> +#if defined(CONFIG_OF)
>> +static const struct of_device_id atmel_dma_dt_ids[] = {
>> + {
>> + .compatible = "atmel,at91sam9rl-dma",
>> + .data = (void *)ATDMA_DEVTYPE_SAM9RL
>> + }, {
>> + .compatible = "atmel,at91sam9g45-dma",
>> + .data = (void *)ATDMA_DEVTYPE_SAM9G45
>> + }, { /* sentinel */ }
>> +};
>> +
>> +MODULE_DEVICE_TABLE(of, atmel_dma_dt_ids);
>> +#endif
>> +
>> static struct platform_device_id atdma_devtypes[] = {
>> {
>> .name = "at91sam9rl_dma",
>> @@ -1187,6 +1203,17 @@ static struct platform_device_id atdma_devtypes[] = {
>> }
>> };
>>
>> +static inline enum atdma_devtype __init at_dma_get_driver_data(
>> + struct platform_device *pdev)
>> +{
>> + if (pdev->dev.of_node) {
>> + const struct of_device_id *match;
>> + match = of_match_node(atmel_dma_dt_ids, pdev->dev.of_node);
>
> You'll need to check the return value. It is possible (though
> unlikely) to have a device with an of_node but still happens to get
> bound via the platform_driver id_table. In which case match would be
> NULL here.
Ok, I add:
if (match == NULL)
return ATDMA_DEVTYPE_UNDEFINED;
Which will take care about this case.
> Otherwise, you can add my a-b after fixing that bug.
>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
Thanks a lot for your reviews Grant,
Bye,
--
Nicolas Ferre
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: vinod.koul@intel.com, linux-arm-kernel@lists.infradead.org,
robherring2@gmail.com, devicetree-discuss@lists.ozlabs.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 2/4] dmaengine: at_hdmac: add device tree support
Date: Thu, 13 Oct 2011 13:54:09 +0200 [thread overview]
Message-ID: <4E96D161.8050602@atmel.com> (raw)
In-Reply-To: <20111013003422.GE14042@ponder.secretlab.ca>
On 10/13/2011 02:34 AM, Grant Likely :
> On Wed, Oct 12, 2011 at 06:57:12PM +0200, Nicolas Ferre wrote:
>> Add device tree probe support for atmel at_hdmac DMA driver.
>> Bindings are added to specify DMA controller configuration.
>>
>> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
>> ---
>> .../devicetree/bindings/dma/atmel-dma.txt | 14 +++++++++
>> drivers/dma/at_hdmac.c | 30 +++++++++++++++++++-
>> 2 files changed, 43 insertions(+), 1 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/dma/atmel-dma.txt
>>
>> diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt
>> new file mode 100644
>> index 0000000..3c046ee
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt
>> @@ -0,0 +1,14 @@
>> +* Atmel Direct Memory Access Controller (DMA)
>> +
>> +Required properties:
>> +- compatible: Should be "atmel,<chip>-dma"
>> +- reg: Should contain DMA registers location and length
>> +- interrupts: Should contain DMA interrupt
>> +
>> +Examples:
>> +
>> +dma@ffffec00 {
>> + compatible = "atmel,at91sam9g45-dma";
>> + reg = <0xffffec00 0x200>;
>> + interrupts = <21>;
>> +};
>> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
>> index d1869c5..42bd64c 100644
>> --- a/drivers/dma/at_hdmac.c
>> +++ b/drivers/dma/at_hdmac.c
>> @@ -23,6 +23,8 @@
>> #include <linux/module.h>
>> #include <linux/platform_device.h>
>> #include <linux/slab.h>
>> +#include <linux/of.h>
>> +#include <linux/of_device.h>
>>
>> #include "at_hdmac_regs.h"
>>
>> @@ -1175,6 +1177,20 @@ static void atc_free_chan_resources(struct dma_chan *chan)
>>
>> /*-- Module Management -----------------------------------------------*/
>>
>> +#if defined(CONFIG_OF)
>> +static const struct of_device_id atmel_dma_dt_ids[] = {
>> + {
>> + .compatible = "atmel,at91sam9rl-dma",
>> + .data = (void *)ATDMA_DEVTYPE_SAM9RL
>> + }, {
>> + .compatible = "atmel,at91sam9g45-dma",
>> + .data = (void *)ATDMA_DEVTYPE_SAM9G45
>> + }, { /* sentinel */ }
>> +};
>> +
>> +MODULE_DEVICE_TABLE(of, atmel_dma_dt_ids);
>> +#endif
>> +
>> static struct platform_device_id atdma_devtypes[] = {
>> {
>> .name = "at91sam9rl_dma",
>> @@ -1187,6 +1203,17 @@ static struct platform_device_id atdma_devtypes[] = {
>> }
>> };
>>
>> +static inline enum atdma_devtype __init at_dma_get_driver_data(
>> + struct platform_device *pdev)
>> +{
>> + if (pdev->dev.of_node) {
>> + const struct of_device_id *match;
>> + match = of_match_node(atmel_dma_dt_ids, pdev->dev.of_node);
>
> You'll need to check the return value. It is possible (though
> unlikely) to have a device with an of_node but still happens to get
> bound via the platform_driver id_table. In which case match would be
> NULL here.
Ok, I add:
if (match == NULL)
return ATDMA_DEVTYPE_UNDEFINED;
Which will take care about this case.
> Otherwise, you can add my a-b after fixing that bug.
>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
Thanks a lot for your reviews Grant,
Bye,
--
Nicolas Ferre
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: vinod.koul@intel.com, devicetree-discuss@lists.ozlabs.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 2/4] dmaengine: at_hdmac: add device tree support
Date: Thu, 13 Oct 2011 13:54:09 +0200 [thread overview]
Message-ID: <4E96D161.8050602@atmel.com> (raw)
In-Reply-To: <20111013003422.GE14042@ponder.secretlab.ca>
On 10/13/2011 02:34 AM, Grant Likely :
> On Wed, Oct 12, 2011 at 06:57:12PM +0200, Nicolas Ferre wrote:
>> Add device tree probe support for atmel at_hdmac DMA driver.
>> Bindings are added to specify DMA controller configuration.
>>
>> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
>> ---
>> .../devicetree/bindings/dma/atmel-dma.txt | 14 +++++++++
>> drivers/dma/at_hdmac.c | 30 +++++++++++++++++++-
>> 2 files changed, 43 insertions(+), 1 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/dma/atmel-dma.txt
>>
>> diff --git a/Documentation/devicetree/bindings/dma/atmel-dma.txt b/Documentation/devicetree/bindings/dma/atmel-dma.txt
>> new file mode 100644
>> index 0000000..3c046ee
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/dma/atmel-dma.txt
>> @@ -0,0 +1,14 @@
>> +* Atmel Direct Memory Access Controller (DMA)
>> +
>> +Required properties:
>> +- compatible: Should be "atmel,<chip>-dma"
>> +- reg: Should contain DMA registers location and length
>> +- interrupts: Should contain DMA interrupt
>> +
>> +Examples:
>> +
>> +dma@ffffec00 {
>> + compatible = "atmel,at91sam9g45-dma";
>> + reg = <0xffffec00 0x200>;
>> + interrupts = <21>;
>> +};
>> diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
>> index d1869c5..42bd64c 100644
>> --- a/drivers/dma/at_hdmac.c
>> +++ b/drivers/dma/at_hdmac.c
>> @@ -23,6 +23,8 @@
>> #include <linux/module.h>
>> #include <linux/platform_device.h>
>> #include <linux/slab.h>
>> +#include <linux/of.h>
>> +#include <linux/of_device.h>
>>
>> #include "at_hdmac_regs.h"
>>
>> @@ -1175,6 +1177,20 @@ static void atc_free_chan_resources(struct dma_chan *chan)
>>
>> /*-- Module Management -----------------------------------------------*/
>>
>> +#if defined(CONFIG_OF)
>> +static const struct of_device_id atmel_dma_dt_ids[] = {
>> + {
>> + .compatible = "atmel,at91sam9rl-dma",
>> + .data = (void *)ATDMA_DEVTYPE_SAM9RL
>> + }, {
>> + .compatible = "atmel,at91sam9g45-dma",
>> + .data = (void *)ATDMA_DEVTYPE_SAM9G45
>> + }, { /* sentinel */ }
>> +};
>> +
>> +MODULE_DEVICE_TABLE(of, atmel_dma_dt_ids);
>> +#endif
>> +
>> static struct platform_device_id atdma_devtypes[] = {
>> {
>> .name = "at91sam9rl_dma",
>> @@ -1187,6 +1203,17 @@ static struct platform_device_id atdma_devtypes[] = {
>> }
>> };
>>
>> +static inline enum atdma_devtype __init at_dma_get_driver_data(
>> + struct platform_device *pdev)
>> +{
>> + if (pdev->dev.of_node) {
>> + const struct of_device_id *match;
>> + match = of_match_node(atmel_dma_dt_ids, pdev->dev.of_node);
>
> You'll need to check the return value. It is possible (though
> unlikely) to have a device with an of_node but still happens to get
> bound via the platform_driver id_table. In which case match would be
> NULL here.
Ok, I add:
if (match == NULL)
return ATDMA_DEVTYPE_UNDEFINED;
Which will take care about this case.
> Otherwise, you can add my a-b after fixing that bug.
>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
Thanks a lot for your reviews Grant,
Bye,
--
Nicolas Ferre
next prev parent reply other threads:[~2011-10-13 11:54 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-12 16:57 [PATCH v3 0/4] dmaengine: Device Tree support for Atmel DMA Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-12 16:57 ` [PATCH v3 1/4] dmaengine: at_hdmac: platform data move to use .id_table Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-13 0:32 ` Grant Likely
2011-10-13 0:32 ` Grant Likely
2011-10-12 16:57 ` [PATCH v3 2/4] dmaengine: at_hdmac: add device tree support Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-13 0:34 ` Grant Likely
2011-10-13 0:34 ` Grant Likely
2011-10-13 11:54 ` Nicolas Ferre [this message]
2011-10-13 11:54 ` Nicolas Ferre
2011-10-13 11:54 ` Nicolas Ferre
2011-10-12 16:57 ` [PATCH v3 3/4] ARM: at91/dma: remove platform data from DMA controller Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-13 0:34 ` Grant Likely
2011-10-13 0:34 ` Grant Likely
2011-10-13 0:34 ` Grant Likely
2011-10-12 16:57 ` [PATCH v3 4/4] ARM: at91/dma: DMA controller registering with DT support Nicolas Ferre
2011-10-12 16:57 ` Nicolas Ferre
2011-10-13 0:35 ` Grant Likely
2011-10-13 0:35 ` Grant Likely
2011-10-13 0:35 ` Grant Likely
2011-10-17 12:54 ` [PATCH v3 0/4] dmaengine: Device Tree support for Atmel DMA Nicolas Ferre
2011-10-17 12:54 ` Nicolas Ferre
2011-10-17 12:54 ` Nicolas Ferre
2011-10-17 12:56 ` [PATCH v4 1/2] dmaengine: at_hdmac: platform data move to use .id_table Nicolas Ferre
2011-10-17 12:56 ` Nicolas Ferre
2011-10-17 12:56 ` Nicolas Ferre
2011-10-17 12:56 ` [PATCH v4 2/2] dmaengine: at_hdmac: add device tree support Nicolas Ferre
2011-10-17 12:56 ` Nicolas Ferre
2011-10-17 12:56 ` Nicolas Ferre
2011-10-24 9:34 ` [PATCH v4 1/2] dmaengine: at_hdmac: platform data move to use .id_table Grant Likely
2011-10-24 9:34 ` Grant Likely
2011-10-24 9:34 ` Grant Likely
2011-11-22 10:55 ` Nicolas Ferre
2011-11-22 10:55 ` Nicolas Ferre
2011-11-22 10:55 ` Nicolas Ferre
2011-10-23 14:30 ` [PATCH v3 0/4] dmaengine: Device Tree support for Atmel DMA Nicolas Ferre
2011-10-23 14:30 ` Nicolas Ferre
2011-10-23 14:30 ` Nicolas Ferre
2011-10-24 3:04 ` Vinod Koul
2011-10-24 3:04 ` Vinod Koul
2011-10-24 3:28 ` Vinod Koul
2011-10-24 3:28 ` Vinod Koul
2011-10-24 9:05 ` Nicolas Ferre
2011-10-24 9:05 ` Nicolas Ferre
2011-10-24 9:05 ` Nicolas Ferre
2011-11-10 9:37 ` Vinod Koul
2011-11-10 9:37 ` Vinod Koul
2011-11-10 9:37 ` 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=4E96D161.8050602@atmel.com \
--to=nicolas.ferre@atmel.com \
--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 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.