Re: [PATCH v5 07/18] thermal: exynos: Modify exynos thermal code to use device tree for cpu cooling configuration

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

 



Hi Viresh,

> On 21 January 2015 at 14:03, Lukasz Majewski <l.majewski@xxxxxxxxxxx>
> wrote:
> >> diff --git a/drivers/cpufreq/exynos-cpufreq.c
> 
> >>  static int exynos_cpufreq_probe(struct platform_device *pdev)
> >>  {
> >> +     struct device_node *cpus, *np;
> >>       int ret = -EINVAL;
> >>
> >>       exynos_info = kzalloc(sizeof(*exynos_info), GFP_KERNEL);
> >> @@ -198,9 +202,31 @@ static int exynos_cpufreq_probe(struct
> >> platform_device *pdev) /* Done here as we want to capture boot
> >> frequency */ locking_frequency =
> >> clk_get_rate(exynos_info->cpu_clk) / 1000;
> >> -     if (!cpufreq_register_driver(&exynos_driver))
> >> -             return 0;
> >> +     if (cpufreq_register_driver(&exynos_driver))
> 
> You should return the error returned by cpufreq_register_driver().

OK.

> 
> >> +             goto err;
> >>
> >> +     cpus = of_find_node_by_path("/cpus");
> >> +     if (!cpus) {
> >> +             pr_err("failed to find cpus node\n");
> >> +             return -ENOENT;
> >> +     }
> >> +
> >> +     for (np = of_get_next_child(cpus, NULL); np;
> >> +          of_node_put(np), np = of_get_next_child(cpus, np)) {
> >> +             if (of_find_property(np, "#cooling-cells", NULL)) {
> 
> Shouldn't you be checking this just for cpu 0 ?

In previous versions I've only checked for cpu 0.

If you think that it is enough to explicitly check only for cpu 0 and
forget about above "fail safe" code (when. e.g. CPU3 has defined
cooling-cells), then I'm fine with it.

> 
> >> +                     cdev = of_cpufreq_cooling_register(np,
> >> +
> >> cpu_present_mask);
> >> +                     if (IS_ERR(cdev))
> >> +                             pr_err("running cpufreq without
> >> cooling device: %ld\n",
> >> +                                    PTR_ERR(cdev));
> >> +                     break;
> >> +             }
> >> +     }
> >> +     of_node_put(np);
> >> +     of_node_put(cpus);
> >> +
> >> +     return 0;
> >> + err:
> >>       dev_err(&pdev->dev, "failed to register cpufreq driver\n");
> >>       regulator_put(arm_regulator);
> >>  err_vdd_arm:
> >
> > Viresh, the above is a small part of the cpufreq related code,
> > which is necessary for Exynos thermal rework to use device tree.
> >
> > It is NOT adding any new functionality, but preserves possibility to
> > use cpufreq as a colling device.
> >
> > Normally I would exclude this part from this commit, but then I
> > cannot assure that between commits no regression is slipping in.
> 
> Mostly looks fine. Just few nits.
> 
> But another important thing is to split this patch, so that there is
> a separate patch for cpufreq driver.

As I've mention - it would be maintainer's call if one trades potential
regression for patch separation.

Thanks for a prompt reply.

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux