[PATCH v3 1/7] cpufreq: cpufreq-cpu0: allow use of optional boost mode frequencies

Thomas Abraham ta.omasab at gmail.com
Thu Feb 13 03:02:31 EST 2014


On Wed, Feb 12, 2014 at 8:28 PM, Tomasz Figa <t.figa at samsung.com> wrote:
> Hi Thomas,
>
>
> On 07.02.2014 16:55, Thomas Abraham wrote:
>>
>> From: Thomas Abraham <thomas.ab at samsung.com>
>>
>> Lookup for the optional boost-frequency property in cpu0 node and if
>> available, enable support for boost mode frequencies. The frequencies
>> usable in boost mode are determined while preparing the cpufreq table
>> from the list of operating points available.
>>
>> In addition to this, enable the CPU_FREQ_BOOST_SW config option for
>> this driver by default. On platforms that do not support boost mode,
>> the boost mode frequencies will not be specified in cpu0 node and
>> hence the boost mode support will not be enabled. Since this driver
>> anyways depends on THERMAL config option, it is safe to enable
>> CPU_FREQ_BOOST_SW config option as default.
>>
>> Cc: Shawn Guo <shawn.guo at linaro.org>
>> Cc: Lukasz Majewski <l.majewski at samsung.com>
>> Signed-off-by: Thomas Abraham <thomas.ab at samsung.com>
>> ---
>>   Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt |    2 ++
>>   drivers/cpufreq/Kconfig                                    |    1 +
>>   drivers/cpufreq/cpufreq-cpu0.c                             |    3 +++
>>   3 files changed, 6 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
>> b/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
>> index f055515..60f321a 100644
>> --- a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
>> +++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt
>> @@ -19,6 +19,8 @@ Optional properties:
>>   - cooling-min-level:
>>   - cooling-max-level:
>>        Please refer to
>> Documentation/devicetree/bindings/thermal/thermal.txt.
>> +- boost-frequency:
>> +     Please refer to
>> Documentation/devicetree/bindings/cpufreq/cpufreq-boost.txt
>>
>>   Examples:
>>
>> diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig
>> index 4b029c0..52cc704 100644
>> --- a/drivers/cpufreq/Kconfig
>> +++ b/drivers/cpufreq/Kconfig
>> @@ -187,6 +187,7 @@ config GENERIC_CPUFREQ_CPU0
>>         tristate "Generic CPU0 cpufreq driver"
>>         depends on HAVE_CLK && REGULATOR && OF && THERMAL && CPU_THERMAL
>>         select PM_OPP
>> +       select CPU_FREQ_BOOST_SW
>>         help
>>           This adds a generic cpufreq driver for CPU0 frequency
>> management.
>>           It supports both uniprocessor (UP) and symmetric multiprocessor
>> (SMP)
>> diff --git a/drivers/cpufreq/cpufreq-cpu0.c
>> b/drivers/cpufreq/cpufreq-cpu0.c
>> index 0c12ffc..06539eb 100644
>> --- a/drivers/cpufreq/cpufreq-cpu0.c
>> +++ b/drivers/cpufreq/cpufreq-cpu0.c
>> @@ -195,6 +195,9 @@ static int cpu0_cpufreq_probe(struct platform_device
>> *pdev)
>>                         transition_latency += ret * 1000;
>>         }
>>
>> +       if (of_find_property(cpu_dev->of_node, "boost-frequency", NULL))
>> +               cpu0_cpufreq_driver.boost_supported = true;
>> +
>>         ret = cpufreq_register_driver(&cpu0_cpufreq_driver);
>>         if (ret) {
>>                 pr_err("failed register driver: %d\n", ret);
>>
>
> I'd say that boost should be enabled depending on user's preference, as done
> before in Exynos cpufreq driver. So both presence of boost-frequency
> property and state of CPU_FREQ_BOOST_SW should be considered.
>
> As for CPU_FREQ_BOOST_SW, I don't think it should be always selected, but
> ather, either converted to a user-selectable bool entry or made selectable
> by other entry, like current ARM_EXYNOS_CPU_FREQ_BOOST_SW.

We still will have the same problem on Exynos multi-platform kernel
where one Exynos platform needs it and others don't. Same with just
using the CPU_FREQ_BOOST_SW config option. So that was the reason to
just fallback on presence of boost property.

Thanks,
Thomas.


>
> Best regards,
> Tomasz



More information about the linux-arm-kernel mailing list