[PATCH 3/4] Removing imx6q_opp_init
John Tobias
john.tobias.ph at gmail.com
Wed Dec 18 11:25:33 EST 2013
Got it.
thanks
john
On Tue, Dec 17, 2013 at 11:49 PM, Shawn Guo <shawn.guo at linaro.org> wrote:
> On Tue, Dec 17, 2013 at 05:17:30PM -0800, John Tobias wrote:
>> Since of_init_opp_table is in imx6q-cpufreq.c, the imx6q_opp_init is no longer needed anymore.
>> The only question right now is the imx6q_opp_check_1p2ghz function.
>>
>> Is the function below are acceptible under imx6q_init_late?.
>>
>> if (!cpu_dev)
>> imx6q_opp_check_1p2ghz(cpu_dev);
>>
>> If not, what is the better way to impelement because the said function is board specific?.
>>
>> Signed-off-by: John Tobias <john.tobias.ph at gmail.com>
>> ---
>> arch/arm/mach-imx/mach-imx6q.c | 30 ++++--------------------------
>> 1 file changed, 4 insertions(+), 26 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
>> index d0cfb22..f5d9e04 100644
>> --- a/arch/arm/mach-imx/mach-imx6q.c
>> +++ b/arch/arm/mach-imx/mach-imx6q.c
>> @@ -183,31 +183,6 @@ put_node:
>> of_node_put(np);
>> }
>>
>> -static void __init imx6q_opp_init(void)
>> -{
>> - struct device_node *np;
>> - struct device *cpu_dev = get_cpu_device(0);
>> -
>> - if (!cpu_dev) {
>> - pr_warn("failed to get cpu0 device\n");
>> - return;
>> - }
>> - np = of_node_get(cpu_dev->of_node);
>> - if (!np) {
>> - pr_warn("failed to find cpu0 node\n");
>> - return;
>> - }
>> -
>> - if (of_init_opp_table(cpu_dev)) {
>> - pr_warn("failed to init OPP table\n");
>> - goto put_node;
>> - }
>> -
>> - imx6q_opp_check_1p2ghz(cpu_dev);
>> -
>> -put_node:
>> - of_node_put(np);
>> -}
>>
>> static struct platform_device imx6q_cpufreq_pdev = {
>> .name = "imx6q-cpufreq",
>> @@ -215,6 +190,7 @@ static struct platform_device imx6q_cpufreq_pdev = {
>>
>> static void __init imx6q_init_late(void)
>> {
>> + struct device *cpu_dev = get_cpu_device(0);
>> /*
>> * WAIT mode is broken on TO 1.0 and 1.1, so there is no point
>> * to run cpuidle on them.
>> @@ -223,8 +199,10 @@ static void __init imx6q_init_late(void)
>> imx6q_cpuidle_init();
>>
>> if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) {
>> - imx6q_opp_init();
>> platform_device_register(&imx6q_cpufreq_pdev);
>> +
>> + if (!cpu_dev)
>> + imx6q_opp_check_1p2ghz(cpu_dev);
>
> imx6q_opp_check_1p2ghz() only works after of_init_opp_table() is called.
> So you shouldn't make these changes in mach-imx6q.c, but in cpufreq
> driver check if platform already supplies an opp table, and only calls
> of_init_opp_table() in driver in case that platform hasn't. Then, for
> imx6q case where opp table is supplied by platform, driver will skip
> of_init_opp_table() call, while for imx6sl case where platform does not
> handle opp table, driver will just call of_init_opp_table().
>
> Shawn
>
>> }
>> }
>>
>> --
>> 1.8.3.2
>>
>
More information about the linux-arm-kernel
mailing list