Re: [PATCH V3 2/2] cpufreq: OMAP: instantiate omap-cpufreq as a platform_driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nishanth Menon <nm@xxxxxx> writes:

> 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.

Yes, I've queued this one for v3.10.  Working on getting some pull
requests out to Tony today.

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




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux