From: Jon Hunter <jon-hunter@ti.com>
To: "Mohammed, Afzal" <afzal@ti.com>
Cc: "tony@atomide.com" <tony@atomide.com>,
"paul@pwsan.com" <paul@pwsan.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 2/3] ARM: OMAP2+: onenand: cleanup for gpmc driver conversion
Date: Tue, 12 Jun 2012 12:30:48 -0500 [thread overview]
Message-ID: <4FD77CC8.4000003@ti.com> (raw)
In-Reply-To: <C8443D0743D26F4388EA172BF4E2A7A93E997D47@DBDE01.ent.ti.com>
On 06/12/2012 01:16 AM, Mohammed, Afzal wrote:
> Hi Jon,
>
> On Tue, Jun 12, 2012 at 00:06:30, Hunter, Jon wrote:
>
>> I agree with getting rid of the first instance at the beginning of
>> _set_async_mode, but why get rid of the above one? Are you assuming that
>> by default it is in async mode? Could be nice to keep it to be explicit.
>
> Second one is achieved below
Hmmm ... it seems odd to put the commands for setting async in the set
sync. I see what you are doing but surely someone should call set async
and the set sync.
>>> @@ -191,19 +181,21 @@ static int omap2_onenand_set_sync_mode(struct omap_onenand_platform_data *cfg,
>>> u32 reg;
>>> bool clk_dep = false;
>>>
>>> + /* Ensure sync read and sync write are disabled */
>>> + reg = readw(onenand_base + ONENAND_REG_SYS_CFG1);
>>> + reg &= ~ONENAND_SYS_CFG1_SYNC_READ & ~ONENAND_SYS_CFG1_SYNC_WRITE;
>>> + writew(reg, onenand_base + ONENAND_REG_SYS_CFG1);
>>> +
>>
>> Should we only set these after we have checked the flags and depending
>> on which flags are set?
>
> Even for sync mode, setting async mode initially is required
>
>>> @@ -421,6 +413,8 @@ void __init gpmc_onenand_init(struct omap_onenand_platform_data *_onenand_data)
>>> gpmc_onenand_resource.end = gpmc_onenand_resource.start +
>>> ONENAND_IO_SIZE - 1;
>>>
>>> + omap2_onenand_set_async_mode(gpmc_onenand_data->cs);
>>> +
>>
>> What about putting this in the gpmc_onenand_setup() function before the
>> call to _set_sync_mode? Seems nice to have these together.
>
> Intention of this patch is to setup GPMC async mode before driver starts
> its job so that reconfiguring GPMC needs to be to be done only once (this
> helps in avoiding issues when it has to work with gpmc driver).
>
> With the existing code, set_async was done as part of set_sync, hence
> requiring GPMC to be configured twice after driver takes control, with
> your suggestion too, GPMC would have to be configured twice.
I am just suggesting that you place the call to set_async_mode in the
gpmc_onenand_setup() instead of the gpmc_onenand_init() and remove the
calls from set_sync (like you have done). So I don't see that these
would configure the GPMC twice.
Jon
WARNING: multiple messages have this Message-ID (diff)
From: jon-hunter@ti.com (Jon Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/3] ARM: OMAP2+: onenand: cleanup for gpmc driver conversion
Date: Tue, 12 Jun 2012 12:30:48 -0500 [thread overview]
Message-ID: <4FD77CC8.4000003@ti.com> (raw)
In-Reply-To: <C8443D0743D26F4388EA172BF4E2A7A93E997D47@DBDE01.ent.ti.com>
On 06/12/2012 01:16 AM, Mohammed, Afzal wrote:
> Hi Jon,
>
> On Tue, Jun 12, 2012 at 00:06:30, Hunter, Jon wrote:
>
>> I agree with getting rid of the first instance at the beginning of
>> _set_async_mode, but why get rid of the above one? Are you assuming that
>> by default it is in async mode? Could be nice to keep it to be explicit.
>
> Second one is achieved below
Hmmm ... it seems odd to put the commands for setting async in the set
sync. I see what you are doing but surely someone should call set async
and the set sync.
>>> @@ -191,19 +181,21 @@ static int omap2_onenand_set_sync_mode(struct omap_onenand_platform_data *cfg,
>>> u32 reg;
>>> bool clk_dep = false;
>>>
>>> + /* Ensure sync read and sync write are disabled */
>>> + reg = readw(onenand_base + ONENAND_REG_SYS_CFG1);
>>> + reg &= ~ONENAND_SYS_CFG1_SYNC_READ & ~ONENAND_SYS_CFG1_SYNC_WRITE;
>>> + writew(reg, onenand_base + ONENAND_REG_SYS_CFG1);
>>> +
>>
>> Should we only set these after we have checked the flags and depending
>> on which flags are set?
>
> Even for sync mode, setting async mode initially is required
>
>>> @@ -421,6 +413,8 @@ void __init gpmc_onenand_init(struct omap_onenand_platform_data *_onenand_data)
>>> gpmc_onenand_resource.end = gpmc_onenand_resource.start +
>>> ONENAND_IO_SIZE - 1;
>>>
>>> + omap2_onenand_set_async_mode(gpmc_onenand_data->cs);
>>> +
>>
>> What about putting this in the gpmc_onenand_setup() function before the
>> call to _set_sync_mode? Seems nice to have these together.
>
> Intention of this patch is to setup GPMC async mode before driver starts
> its job so that reconfiguring GPMC needs to be to be done only once (this
> helps in avoiding issues when it has to work with gpmc driver).
>
> With the existing code, set_async was done as part of set_sync, hence
> requiring GPMC to be configured twice after driver takes control, with
> your suggestion too, GPMC would have to be configured twice.
I am just suggesting that you place the call to set_async_mode in the
gpmc_onenand_setup() instead of the gpmc_onenand_init() and remove the
calls from set_sync (like you have done). So I don't see that these
would configure the GPMC twice.
Jon
next prev parent reply other threads:[~2012-06-12 17:30 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-11 14:01 [PATCH 0/3] Prepare for GPMC driver conversion Afzal Mohammed
2012-06-11 14:01 ` Afzal Mohammed
2012-06-11 14:01 ` [PATCH 1/3] ARM: OMAP2+: nand: unify init functions Afzal Mohammed
2012-06-11 14:01 ` Afzal Mohammed
2012-06-11 15:43 ` Jon Hunter
2012-06-11 15:43 ` Jon Hunter
2012-06-12 5:50 ` Mohammed, Afzal
2012-06-12 5:50 ` Mohammed, Afzal
2012-06-11 14:01 ` [PATCH 2/3] ARM: OMAP2+: onenand: cleanup for gpmc driver conversion Afzal Mohammed
2012-06-11 14:01 ` Afzal Mohammed
2012-06-11 18:36 ` Jon Hunter
2012-06-11 18:36 ` Jon Hunter
2012-06-12 6:16 ` Mohammed, Afzal
2012-06-12 6:16 ` Mohammed, Afzal
2012-06-12 17:30 ` Jon Hunter [this message]
2012-06-12 17:30 ` Jon Hunter
2012-06-13 5:03 ` Mohammed, Afzal
2012-06-13 5:03 ` Mohammed, Afzal
2012-06-13 16:38 ` Jon Hunter
2012-06-13 16:38 ` Jon Hunter
2012-06-14 5:40 ` Mohammed, Afzal
2012-06-14 5:40 ` Mohammed, Afzal
2012-06-14 17:53 ` Jon Hunter
2012-06-14 17:53 ` Jon Hunter
2012-06-15 6:52 ` Mohammed, Afzal
2012-06-15 6:52 ` Mohammed, Afzal
2012-06-11 14:02 ` [PATCH 3/3] ARM: OMAP2+: gpmc: handle additional timings Afzal Mohammed
2012-06-11 14:02 ` Afzal Mohammed
2012-06-11 18:49 ` Jon Hunter
2012-06-11 18:49 ` Jon Hunter
2012-06-12 6:37 ` Mohammed, Afzal
2012-06-12 6:37 ` Mohammed, Afzal
2012-06-12 17:36 ` Jon Hunter
2012-06-12 17:36 ` Jon Hunter
2012-06-13 4:56 ` Mohammed, Afzal
2012-06-13 4:56 ` Mohammed, Afzal
2012-06-13 11:32 ` Tony Lindgren
2012-06-13 11:32 ` Tony Lindgren
2012-06-13 11:54 ` Tony Lindgren
2012-06-13 11:54 ` Tony Lindgren
2012-06-13 11:58 ` Mohammed, Afzal
2012-06-13 11:58 ` Mohammed, Afzal
2012-06-14 10:10 ` Mohammed, Afzal
2012-06-14 10:10 ` Mohammed, Afzal
2012-06-14 10:19 ` Tony Lindgren
2012-06-14 10:19 ` Tony Lindgren
2012-06-14 10:39 ` Mohammed, Afzal
2012-06-14 10:39 ` Mohammed, Afzal
2012-06-14 11:49 ` Tony Lindgren
2012-06-14 11:49 ` Tony Lindgren
2012-06-14 11:59 ` Mohammed, Afzal
2012-06-14 11:59 ` Mohammed, Afzal
2012-06-14 12:09 ` Mohammed, Afzal
2012-06-14 12:09 ` Mohammed, Afzal
2012-06-14 12:21 ` Mohammed, Afzal
2012-06-14 12:21 ` Mohammed, Afzal
2012-06-14 12:30 ` Tony Lindgren
2012-06-14 12:30 ` Tony Lindgren
2012-06-14 11:52 ` Tony Lindgren
2012-06-14 11:52 ` Tony Lindgren
2012-06-14 11:56 ` Mohammed, Afzal
2012-06-14 11:56 ` Mohammed, Afzal
2012-06-14 12:29 ` Tony Lindgren
2012-06-14 12:29 ` Tony Lindgren
2012-06-14 12:53 ` Mohammed, Afzal
2012-06-14 12:53 ` Mohammed, Afzal
2012-06-14 16:53 ` Tony Lindgren
2012-06-14 16:53 ` Tony Lindgren
2012-06-15 5:42 ` Mohammed, Afzal
2012-06-15 5:42 ` Mohammed, Afzal
2012-06-15 6:16 ` Mohammed, Afzal
2012-06-15 6:16 ` Mohammed, Afzal
2012-06-15 10:45 ` Tony Lindgren
2012-06-15 10:45 ` Tony Lindgren
2012-06-15 10:49 ` Mohammed, Afzal
2012-06-15 10:49 ` Mohammed, Afzal
2012-06-13 12:34 ` Mohammed, Afzal
2012-06-13 12:34 ` Mohammed, Afzal
2012-06-13 12:42 ` Tony Lindgren
2012-06-13 12:42 ` Tony Lindgren
2012-06-13 14:04 ` Mohammed, Afzal
2012-06-13 14:04 ` Mohammed, Afzal
2012-06-14 6:32 ` Tony Lindgren
2012-06-14 6:32 ` Tony Lindgren
2012-06-14 9:29 ` Tony Lindgren
2012-06-14 9:29 ` Tony Lindgren
2012-06-14 9:41 ` Mohammed, Afzal
2012-06-14 9:41 ` Mohammed, Afzal
2012-06-14 11:23 ` Tony Lindgren
2012-06-14 11:23 ` Tony Lindgren
2012-06-12 10:27 ` [PATCH 0/3] Prepare for GPMC driver conversion Mohammed, Afzal
2012-06-12 10:27 ` Mohammed, Afzal
2012-06-13 11:33 ` Tony Lindgren
2012-06-13 11:33 ` Tony Lindgren
2012-06-13 12:40 ` Mohammed, Afzal
2012-06-13 12:40 ` Mohammed, Afzal
2012-06-13 16:46 ` Jon Hunter
2012-06-13 16:46 ` Jon Hunter
2012-06-14 5:58 ` Mohammed, Afzal
2012-06-14 5:58 ` Mohammed, Afzal
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=4FD77CC8.4000003@ti.com \
--to=jon-hunter@ti.com \
--cc=afzal@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.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.