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. -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html