From: Tony Lindgren <tony@atomide.com>
To: Daniel Mack <zonque@gmail.com>
Cc: Jon Hunter <jon-hunter@ti.com>,
x0148406@ti.com, devicetree-discuss@lists.ozlabs.org,
nsekhar@ti.com, rob.herring@calxeda.com, avinashphilip@ti.com,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 4/5] ARM: OMAP: gpmc: enable hwecc for AM33xx SoCs
Date: Wed, 5 Dec 2012 09:19:50 -0800 [thread overview]
Message-ID: <20121205171950.GF21682@atomide.com> (raw)
In-Reply-To: <50BF4670.8070602@gmail.com>
* Daniel Mack <zonque@gmail.com> [121205 05:07]:
> On 29.11.2012 21:59, Jon Hunter wrote:
> > On 11/29/2012 02:42 PM, Daniel Mack wrote:
> >> On 29.11.2012 21:32, Jon Hunter wrote:
> >>>
> >>> On 11/29/2012 01:59 PM, Jon Hunter wrote:
> >>>>
> >>>> On 11/29/2012 10:01 AM, Daniel Mack wrote:
> >>>>> The am33xx is capable of handling bch error correction modes, so
> >>>>> enable that feature in the driver.
> >>>>>
> >>>>> Signed-off-by: Daniel Mack <zonque@gmail.com>
> >>>>> ---
> >>>>> arch/arm/mach-omap2/gpmc-nand.c | 9 +++++----
> >>>>> 1 file changed, 5 insertions(+), 4 deletions(-)
> >>>>>
> >>>>> diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
> >>>>> index f9f23a2..c8a72ba 100644
> >>>>> --- a/arch/arm/mach-omap2/gpmc-nand.c
> >>>>> +++ b/arch/arm/mach-omap2/gpmc-nand.c
> >>>>> @@ -92,17 +92,18 @@ static int omap2_nand_gpmc_retime(
> >>>>> static bool gpmc_hwecc_bch_capable(enum omap_ecc ecc_opt)
> >>>>> {
> >>>>> /* support only OMAP3 class */
> >>>>> - if (!cpu_is_omap34xx()) {
> >>>>> + if (!cpu_is_omap34xx() && !soc_is_am33xx()) {
> >>>>> pr_err("BCH ecc is not supported on this CPU\n");
> >>>>> return 0;
> >>>>> }
> >>>>>
> >>>>> /*
> >>>>> - * For now, assume 4-bit mode is only supported on OMAP3630 ES1.x, x>=1.
> >>>>> - * Other chips may be added if confirmed to work.
> >>>>> + * For now, assume 4-bit mode is only supported on OMAP3630 ES1.x, x>=1
> >>>>> + * and AM33xx derivates. Other chips may be added if confirmed to work.
> >>>>> */
> >>>>> if ((ecc_opt == OMAP_ECC_BCH4_CODE_HW) &&
> >>>>> - (!cpu_is_omap3630() || (GET_OMAP_REVISION() == 0))) {
> >>>>> + (!cpu_is_omap3630() || (GET_OMAP_REVISION() == 0)) &&
> >>>>> + (!soc_is_am33xx())) {
> >>>>> pr_err("BCH 4-bit mode is not supported on this CPU\n");
> >>>>> return 0;
> >>>>> }
> >>>>
> >>>> Sorry I should have seen this earlier. Ideally, this type of thing
> >>>> should be reflected by the device-tree/platform-data and we should get
> >>>> away from these cpu_is_xxxx macros for hardware features (where we can).
> >>>> Furthermore, we need to avoid including plat-omap/gpmc.h in drivers for
> >>>> the single zImage work (I see the omap nand driver is including gpmc.h).
> >>>>
> >>>> Tony, should this be addressed now or can we live this for the minute
> >>>> and fix-up later?
> >>>
> >>> Actually, I see that you do read the ecc mode from DT, so is this really
> >>> needed? It would be good to eliminate this.
> >>
> >> The ecc mode is read from DT, right. But the gpmc bindings can be used
> >> for many OMAP derivates in the future, and this check is there to make
> >> sure the configured settings are supported by the hardware after all,
> >> just like if the ecc mode would have been passed as static platform
> >> data. So what is it exactly that you want to get rid of?
> >
> > The above function.
> >
> > If there is a hardware bug that prevents us from using the hw-ecc mode
> > that is supported (which is the case for omap3630 es1.0), then we should
> > have a GPMC_ERRATA_xxx flag somewhere to indicate this and these errata
> > flags should be populated at probe.
> >
> >> I agree though that we could solve this with via the of_device_id's data
> >> pointer of the matching driver. But as you said yourself, this can well
> >> be done later, and the problem here is that we still need the
> >> cpu_is_xxx() macros for older platforms, right?
> >
> > Yes, but we cannot/shouldn't use these cpu_is_xxx macros from within
> > driver code. Ok, here we can calling a platform function that is calling
> > the macro, but for single zImage we cannot do that either. We cannot
> > include platform headers in drivers for single zImage. We have to get
> > away from that. Therefore, such information needs to be passed by
> > platform data, device tree, etc.
> >
> > I will let Tony decide on how he wants us to handle this.
>
> Any idea yet about this detail? The other small Documentation changes
> you brought up are fixed in my tree and ready for resubmission.
The plat/cpu.h file will disappear after the merge window, which means
omap2+ related drivers cannot use cpu_is_omap macros.
For legacy booting systems, this flag should be just passed in the
platform_data from the platform init code. Then device tree can
deal with it based on the compatible flag.
Regards,
Tony
next prev parent reply other threads:[~2012-12-05 17:19 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-29 16:01 [PATCH v6 0/5] OMAP GPMC DT bindings Daniel Mack
2012-11-29 16:01 ` [PATCH v6 1/5] ARM: OMAP: gpmc: don't create devices from initcall on DT Daniel Mack
[not found] ` <1354204892-22762-2-git-send-email-zonque-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-11-29 18:00 ` Jon Hunter
2012-11-29 16:01 ` [PATCH v6 2/5] mtd: omap-nand: pass device_node in platform data Daniel Mack
2012-11-29 16:01 ` [PATCH v6 3/5] ARM: OMAP: gpmc-nand: drop __init annotation Daniel Mack
2012-11-29 16:01 ` [PATCH v6 4/5] ARM: OMAP: gpmc: enable hwecc for AM33xx SoCs Daniel Mack
2012-11-29 19:59 ` Jon Hunter
2012-11-29 20:32 ` Jon Hunter
2012-11-29 20:42 ` Daniel Mack
2012-11-29 20:59 ` Jon Hunter
2012-12-05 13:04 ` Daniel Mack
2012-12-05 17:19 ` Tony Lindgren [this message]
2012-12-05 17:26 ` Daniel Mack
2012-12-05 17:41 ` Tony Lindgren
2012-12-05 18:19 ` Jon Hunter
2012-12-05 18:33 ` Tony Lindgren
2012-12-05 18:40 ` Daniel Mack
2012-12-05 19:11 ` Jon Hunter
2012-12-05 18:43 ` Daniel Mack
2012-11-29 16:01 ` [PATCH v6 5/5] ARM: OMAP: gpmc: add DT bindings for GPMC timings and NAND Daniel Mack
[not found] ` <1354204892-22762-6-git-send-email-zonque-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-11-29 20:28 ` Jon Hunter
2012-11-29 20:56 ` Daniel Mack
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=20121205171950.GF21682@atomide.com \
--to=tony@atomide.com \
--cc=avinashphilip@ti.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=jon-hunter@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=rob.herring@calxeda.com \
--cc=x0148406@ti.com \
--cc=zonque@gmail.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).