From: "Franklin S Cooper Jr." <fcooper@ti.com>
To: Roger Quadros <rogerq@ti.com>, <nsekhar@ti.com>,
<dwmw2@infradead.org>, <computersforpeace@gmail.com>,
<tony@atomide.com>, <devicetree@vger.kernel.org>,
<linux-omap@vger.kernel.org>, <linux-mtd@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 1/7] ARM: OMAP2+: gpmc-nand: Set omap2-nand's parent dev to GPMC dev
Date: Fri, 11 Mar 2016 09:39:28 -0600 [thread overview]
Message-ID: <56E2E6B0.5050507@ti.com> (raw)
In-Reply-To: <56E2CDB7.2080306@ti.com>
On 03/11/2016 07:52 AM, Roger Quadros wrote:
> Franklin,
>
> On 11/03/16 01:56, Franklin S Cooper Jr wrote:
>> The dma channel information is located within the GPMC node which is the
>> NAND's parent node. The NAND driver requires a handle to the GPMC's dev
>> to properly parse the DMA properties. Therefore, set the NAND's parent dev
>> to the GPMC's dev so it can be referenced within the driver.
>>
>> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
>> ---
>> Version 4 changes:
>> Instead of storing the GPMC dev in a new property simply grab a reference
>> to it and set omap2-nand's dev.parent to it.
>>
>> arch/arm/mach-omap2/gpmc-nand.c | 16 +++++++++++++++-
>> 1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
>> index 72918c4..77e453c 100644
>> --- a/arch/arm/mach-omap2/gpmc-nand.c
>> +++ b/arch/arm/mach-omap2/gpmc-nand.c
>> @@ -15,6 +15,7 @@
>> #include <linux/omap-gpmc.h>
>> #include <linux/mtd/nand.h>
>> #include <linux/platform_data/mtd-nand-omap2.h>
>> +#include <linux/of_platform.h>
>>
>> #include <asm/mach/flash.h>
>>
>> @@ -77,6 +78,9 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
>> int err = 0;
>> struct gpmc_settings s;
>> struct platform_device *pdev;
>> + struct platform_device *gpmc_dev;
>> + struct device_node *gpmc_node;
>> +
>> struct resource gpmc_nand_res[] = {
>> { .flags = IORESOURCE_MEM, },
>> { .flags = IORESOURCE_IRQ, },
>> @@ -134,8 +138,18 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
>> if (pdev) {
>> err = platform_device_add_resources(pdev, gpmc_nand_res,
>> ARRAY_SIZE(gpmc_nand_res));
>> - if (!err)
>> + if (!err) {
>> pdev->dev.platform_data = gpmc_nand_data;
>> +
>> + gpmc_node = of_get_parent(gpmc_nand_data->of_node);
> I'm afraid that we can't use this method as we want to restrict
> gpmc_nand_init() to non-DT boots.
The only users of the parent GPMC driver are already using
DT. The gpmc_probe_nand_child function in the GPMC driver
which calls gpmc_nand_init is already DT only.
The only other caller to gpmc_nand_init is board-flash.c.
The driver doesn't utilize xfer_type to even switch to any
other modes including DMA prefetch mode. Looking at it
closer there isn't a dev from some kind of parent for me to
pass along. Board_nand_init which calls gpmc_nand_init just
takes raw NAND values with no relation to its parent.
With that being said are you ok with leaving it as is?
>
>> +
>> + if (gpmc_node) {
>> + gpmc_dev = of_find_device_by_node(gpmc_node);
>> +
>> + if (gpmc_dev)
>> + pdev->dev.parent = &gpmc_dev->dev;
>> + }
>> + }
>> } else {
>> err = -ENOMEM;
>> }
>>
> cheers,
> -roger
WARNING: multiple messages have this Message-ID (diff)
From: "Franklin S Cooper Jr." <fcooper@ti.com>
To: Roger Quadros <rogerq@ti.com>,
nsekhar@ti.com, dwmw2@infradead.org, computersforpeace@gmail.com,
tony@atomide.com, devicetree@vger.kernel.org,
linux-omap@vger.kernel.org, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 1/7] ARM: OMAP2+: gpmc-nand: Set omap2-nand's parent dev to GPMC dev
Date: Fri, 11 Mar 2016 09:39:28 -0600 [thread overview]
Message-ID: <56E2E6B0.5050507@ti.com> (raw)
In-Reply-To: <56E2CDB7.2080306@ti.com>
On 03/11/2016 07:52 AM, Roger Quadros wrote:
> Franklin,
>
> On 11/03/16 01:56, Franklin S Cooper Jr wrote:
>> The dma channel information is located within the GPMC node which is the
>> NAND's parent node. The NAND driver requires a handle to the GPMC's dev
>> to properly parse the DMA properties. Therefore, set the NAND's parent dev
>> to the GPMC's dev so it can be referenced within the driver.
>>
>> Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
>> ---
>> Version 4 changes:
>> Instead of storing the GPMC dev in a new property simply grab a reference
>> to it and set omap2-nand's dev.parent to it.
>>
>> arch/arm/mach-omap2/gpmc-nand.c | 16 +++++++++++++++-
>> 1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
>> index 72918c4..77e453c 100644
>> --- a/arch/arm/mach-omap2/gpmc-nand.c
>> +++ b/arch/arm/mach-omap2/gpmc-nand.c
>> @@ -15,6 +15,7 @@
>> #include <linux/omap-gpmc.h>
>> #include <linux/mtd/nand.h>
>> #include <linux/platform_data/mtd-nand-omap2.h>
>> +#include <linux/of_platform.h>
>>
>> #include <asm/mach/flash.h>
>>
>> @@ -77,6 +78,9 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
>> int err = 0;
>> struct gpmc_settings s;
>> struct platform_device *pdev;
>> + struct platform_device *gpmc_dev;
>> + struct device_node *gpmc_node;
>> +
>> struct resource gpmc_nand_res[] = {
>> { .flags = IORESOURCE_MEM, },
>> { .flags = IORESOURCE_IRQ, },
>> @@ -134,8 +138,18 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
>> if (pdev) {
>> err = platform_device_add_resources(pdev, gpmc_nand_res,
>> ARRAY_SIZE(gpmc_nand_res));
>> - if (!err)
>> + if (!err) {
>> pdev->dev.platform_data = gpmc_nand_data;
>> +
>> + gpmc_node = of_get_parent(gpmc_nand_data->of_node);
> I'm afraid that we can't use this method as we want to restrict
> gpmc_nand_init() to non-DT boots.
The only users of the parent GPMC driver are already using
DT. The gpmc_probe_nand_child function in the GPMC driver
which calls gpmc_nand_init is already DT only.
The only other caller to gpmc_nand_init is board-flash.c.
The driver doesn't utilize xfer_type to even switch to any
other modes including DMA prefetch mode. Looking at it
closer there isn't a dev from some kind of parent for me to
pass along. Board_nand_init which calls gpmc_nand_init just
takes raw NAND values with no relation to its parent.
With that being said are you ok with leaving it as is?
>
>> +
>> + if (gpmc_node) {
>> + gpmc_dev = of_find_device_by_node(gpmc_node);
>> +
>> + if (gpmc_dev)
>> + pdev->dev.parent = &gpmc_dev->dev;
>> + }
>> + }
>> } else {
>> err = -ENOMEM;
>> }
>>
> cheers,
> -roger
next prev parent reply other threads:[~2016-03-11 15:40 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-10 23:56 [PATCH v4 0/7] mtd: nand: Fix support for NAND DMA prefetch Franklin S Cooper Jr
2016-03-10 23:56 ` Franklin S Cooper Jr
2016-03-10 23:56 ` [PATCH v4 1/7] ARM: OMAP2+: gpmc-nand: Set omap2-nand's parent dev to GPMC dev Franklin S Cooper Jr
2016-03-10 23:56 ` Franklin S Cooper Jr
2016-03-11 13:52 ` Roger Quadros
2016-03-11 13:52 ` Roger Quadros
2016-03-11 15:39 ` Franklin S Cooper Jr. [this message]
2016-03-11 15:39 ` Franklin S Cooper Jr.
2016-03-14 9:15 ` Roger Quadros
2016-03-14 9:15 ` Roger Quadros
2016-04-13 19:40 ` Tony Lindgren
2016-03-10 23:56 ` [PATCH v4 2/7] ARM: dts: am33xx: Fix GPMC dma properties Franklin S Cooper Jr
2016-03-10 23:56 ` Franklin S Cooper Jr
2016-03-11 13:56 ` Roger Quadros
2016-03-11 13:56 ` Roger Quadros
2016-03-11 13:58 ` Peter Ujfalusi
2016-03-11 13:58 ` Peter Ujfalusi
2016-04-13 19:45 ` Tony Lindgren
2016-03-10 23:56 ` [PATCH v4 3/7] ARM: dts: am437x: " Franklin S Cooper Jr
2016-03-11 13:56 ` Roger Quadros
2016-03-11 13:56 ` Roger Quadros
2016-03-11 14:03 ` Peter Ujfalusi
2016-03-11 14:03 ` Peter Ujfalusi
2016-03-10 23:56 ` [PATCH v4 4/7] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr
2016-03-10 23:56 ` [PATCH v4 5/7] mtd: nand: omap2: Start dma request before enabling prefetch Franklin S Cooper Jr
2016-03-10 23:56 ` [PATCH v4 6/7] mtd: nand: omap2: Fix high memory dma prefetch transfer Franklin S Cooper Jr
2016-03-21 15:04 ` Boris Brezillon
2016-03-21 15:04 ` Boris Brezillon
2016-04-13 20:08 ` Franklin S Cooper Jr.
2016-04-13 20:08 ` Franklin S Cooper Jr.
2016-04-13 20:24 ` Boris Brezillon
2016-04-13 20:24 ` Boris Brezillon
2016-04-13 21:11 ` Franklin S Cooper Jr.
2016-04-13 21:11 ` Franklin S Cooper Jr.
2016-03-10 23:56 ` [PATCH v4 7/7] ARM: OMAP2+: Update GPMC and NAND DT binding documentation Franklin S Cooper Jr
2016-03-18 19:13 ` Rob Herring
2016-03-18 19:13 ` Rob Herring
2016-03-11 14:02 ` [PATCH v4 0/7] mtd: nand: Fix support for NAND DMA prefetch Roger Quadros
2016-03-11 14:02 ` Roger Quadros
2016-03-14 14:17 ` Franklin S Cooper Jr.
2016-03-14 14:17 ` Franklin S Cooper Jr.
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=56E2E6B0.5050507@ti.com \
--to=fcooper@ti.com \
--cc=computersforpeace@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=rogerq@ti.com \
--cc=tony@atomide.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.