Re: [PATCH v5 1/1] cpufreq: tegra: Re-model Tegra20 cpufreq driver

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

 



On 12/20/2013 05:31 PM, Viresh Kumar wrote:
On 19 December 2013 16:48, Bill Huang <bilhuang@xxxxxxxxxx> wrote:
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index ce52ed9..22dfc43 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -225,6 +225,18 @@ config ARM_TEGRA_CPUFREQ
         help
           This adds the CPUFreq driver support for TEGRA SOCs.

+config ARM_TEGRA20_CPUFREQ
+       bool "NVIDIA TEGRA20"
+       depends on ARM_TEGRA_CPUFREQ && ARCH_TEGRA_2x_SOC

Probably just in case you agree to my next comment:

             depends on ARCH_TEGRA_2x_SOC


+       default y
+       help
+         This enables Tegra20 cpufreq functionality, it adds
+         Tegra20 CPU frequency ladder and the call back functions
+         to set CPU rate. All the non-SoC dependant codes are
+         controlled by the config ARM_TEGRA_CPUFREQ.
+
+         If in doubt, say N.


diff --git a/drivers/cpufreq/tegra-cpufreq.c b/drivers/cpufreq/tegra-cpufreq.c
  /*
+ * Copyright (c) 2013, NVIDIA Corporation. All rights reserved.
   *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
   *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
   */

  #include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/of.h>
+#include <linux/tegra-cpufreq.h>
+
+int __init tegra_cpufreq_init(void)
+{
+       struct device_node *root;
+
+       root = of_find_node_by_path("/");
+       if (root) {
+               struct platform_device_info devinfo;
+               const char *compat;
+               int i;
+
+               memset(&devinfo, 0, sizeof(devinfo));
+               i = of_property_count_strings(root, "compatible");
+               if (i > 0) {
+                       of_property_read_string_index(
+                               root, "compatible", i - 1, &compat);
+                       devinfo.name = kasprintf(
+                                       GFP_KERNEL, "%s-cpufreq", compat);
+                       platform_device_register_full(&devinfo);
+               }
         }
+EXPORT_SYMBOL(tegra_cpufreq_init);

Probably above is all that is present in this file. This is just about adding
the right cpufreq device so that right driver can get probed.

I don't think this code is present at the right place. We don't need a file
in cpufreq/ which is there just to add a device :) ..

Probably move this piece of code to arch/mach-tegra where you are calling
init.

And so remove ARM_TEGRA_CPUFREQ config option completely.

Don't you think it worth creating a file here so this can be shared to arm64?
--
To unsubscribe from this list: send the line "unsubscribe cpufreq" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Devel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Forum]     [Linux SCSI]

  Powered by Linux