On 08:29-20130329, Viresh Kumar wrote: > On Fri, Mar 29, 2013 at 3:22 AM, Nishanth Menon <nm@xxxxxx> wrote: > > As multi-platform build is being adopted by more and more ARM platforms, > > initcall function should be used very carefully. For example, when > > CONFIG_ARM_OMAP2PLUS_CPUFREQ is built in the kernel, omap_cpufreq_init() > > will be called on all the platforms to initialize omap-cpufreq driver. > > > > Further, on OMAP, we now use Soc generic cpufreq-cpu0 driver using device > > tree entries. To allow cpufreq-cpu0 and omap-cpufreq drivers to co-exist > > for OMAP in a single image, we need to ensure the following: > > 1. With device tree boot, we use cpufreq-cpu0 > > 2. With non device tree boot, we use omap-cpufreq > > > > In the case of (1), we will have cpu OPPs and regulator registered > > as part of the device tree nodes, to ensure that omap-cpufreq > > and cpufreq-cpu0 don't conflict in managing the frequency of the > > same CPU, we should not permit omap-cpufreq to be probed. > > > > In the case of (2), we will not have the cpufreq-cpu0 device, hence > > only omap-cpufreq will be active. > > > > To eliminate this undesired these effects, we change omap-cpufreq > > driver to have it instantiated as a platform_driver and register > > "omap-cpufreq" device only when booted without device tree nodes on > > OMAP platforms. > > > > This allows the following: > > a) Will only run on platforms that create the platform_device > > "omap-cpufreq". > > b) Since the platform_device is registered only when device tree nodes > > are *not* populated, omap-cpufreq driver does not conflict with > > the usage of cpufreq-cpu0 driver which is used on OMAP platforms when > > device tree nodes are present. > > > > Inspired by commit 5553f9e26f6f49a93ba732fd222eac6973a4cf35 > > (cpufreq: instantiate cpufreq-cpu0 as a platform_driver) > > > > Cc: Kevin Hilman <khilman@xxxxxxxxxx> > > Cc: Rajendra Nayak <rnayak@xxxxxx> > > Cc: Paul Walmsley <paul@xxxxxxxxx> > > Cc: "Benoît Cousson" <b-cousson@xxxxxx> > > Cc: Jon Hunter <jon-hunter@xxxxxx> > > Cc: Keerthy <j-keerthy@xxxxxx> > > Cc: Santosh Shilimkar <santosh.shilimkar@xxxxxx> > > Cc: Shawn Guo <shawn.guo@xxxxxxxxxx> > > [robherring2@xxxxxxxxx: reported conflict of omap-cpufreq vs other > > driver in an non-device tree supported boot] > > Reported-by: Rob Herring <robherring2@xxxxxxxxx> > > Signed-off-by: Nishanth Menon <nm@xxxxxx> > > --- > > Changes in V3: > > - converted to platform_driver to > > address https://patchwork.kernel.org/patch/2303491/ as well > > - modified CC list. > > V2: https://patchwork.kernel.org/patch/2303491/ > > V1: https://patchwork.kernel.org/patch/2273681/ > > > > arch/arm/mach-omap2/pm.c | 9 +++++++++ > > drivers/cpufreq/omap-cpufreq.c | 19 ++++++++++++++----- > > 2 files changed, 23 insertions(+), 5 deletions(-) > > For cpufreq core: > > Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> Since this patch could be merged independently to help multi-platform builds, While the omap community discusses: http://marc.info/?t=136450773400004&r=1&w=2 http://marc.info/?t=136370325600009&r=1&w=2&n=7 To enable cpufreq-cpu0 driver in DT mode, I wonder if we could queue this up for 3.10. -- Regards, Nishanth Menon -- 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