[PATCH] OMAP2+: hwmod: remove OMAP_CHIP*
Paul Walmsley
paul at pwsan.com
Wed Sep 14 07:54:46 EDT 2011
Hello Gražvydas,
On Mon, 5 Sep 2011, Grazvydas Ignotas wrote:
> On Mon, Sep 5, 2011 at 5:43 AM, Paul Walmsley <paul at pwsan.com> wrote:
> > diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> > index 84cc0bd..d7138070 100644
> > --- a/arch/arm/mach-omap2/omap_hwmod.c
> > +++ b/arch/arm/mach-omap2/omap_hwmod.c
> <snip>
>
> >
> > int __init omap3xxx_hwmod_init(void)
> > {
> > - return omap_hwmod_register(omap3xxx_hwmods);
> > + int r;
> > + struct omap_hwmod **h = NULL;
> > +
> > + /* Register hwmods common to all OMAP3 */
> > + r = omap_hwmod_register(omap3xxx_hwmods);
> > + if (!r)
> > + return r;
> > +
> > + /*
> > + * Register hwmods common to individual OMAP3 families, all
> > + * silicon revisions (e.g., 34xx, or AM3505/3517, or 36xx)
> > + * All possible revisions should be included in this conditional.
> > + */
> > + if (omap_rev() == OMAP3430_REV_ES1_0 ||
> > + omap_rev() == OMAP3430_REV_ES2_0 ||
> > + omap_rev() == OMAP3430_REV_ES2_1 ||
> > + omap_rev() == OMAP3430_REV_ES3_0 ||
> > + omap_rev() == OMAP3430_REV_ES3_1 ||
> > + omap_rev() == OMAP3430_REV_ES3_1_2) {
> > + h = omap34xx_hwmods;
> > + } else if (omap_rev() & OMAP3505_REV(0)) {
> > + h = am35xx_hwmods;
>
> This check will be always true I think?
Thanks for the review; you are absolutely right and this will be fixed.
> Why not just use cpu_is_omap3xxx() for these tests, since it does same
> omap_rev() call but only once per family?
cpu_is_omap*() doesn't do what one would expect :-(
For example, cpu_is_omap34xx() returns 1 on not only 34xx, but also 36xx
and 3517/3505. Unfortunately, we don't currently do a good job of
separating SoC family detection from individual SoC detection.
If your objection is to the multiple calls to omap_rev(), those do indeed
appear in the source to be potentially expensive function calls --
although the compiler should inline them. Just to be sure, the
next revision will use a variable.
regards
- Paul
More information about the linux-arm-kernel
mailing list