Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> writes: > On Wed, May 20, 2009 at 04:19:25PM -0700, Kevin Hilman wrote: >> This patch is to sync the core linux-omap PM code with mainline. This >> code has evolved and been used for a while the linux-omap tree, but >> the attempt here is to finally get this into mainline. > > Hmm.. > >> +static int __init omap_pm_init(void) >> { >> - return 0; >> + int error = -1; >> + >> + if (cpu_is_omap24xx()) >> + error = omap2_pm_init(); >> + if (cpu_is_omap34xx()) >> + error = omap3_pm_init(); > > Experience with PXA has shown that this tends to be the wrong way up > of doing things. It seems to be much better to have the SoC specific > code call the SoC generic code instead. OK. > So, eg, omap2_pm_init() becomes: > > static int omap2_pm_init(void) > { > if (!cpu_is_omap24xx()) > return -ENODEV; > > ... omap24xx initialisation ... > > return omap_pm_init(); > } > late_initcall(omap2_pm_init); > > (and, since this is always built-in, there's no point doing cleanup if > omap_pm_init() fails - you're not going to be able to re-run that > initialization again.) Sounds good, I'll make this change and upate the pm-upstream branch for Tony. This will leave the common omap_pm_init() and pm.c basically empty, so I'll just remove them. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html