From: Colin Cross Date: Thu, 21 Oct 2010 00:47:18 +0000 (-0700) Subject: [ARM] tegra: Disable clocks left on by bootloader X-Git-Tag: firefly_0821_release~9833^2~142^2~22 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7ef0c96152dd4e93dbe8bcd5a4d65a53332ac51f;p=firefly-linux-kernel-4.4.55.git [ARM] tegra: Disable clocks left on by bootloader Change-Id: I6651ab59b738787ec94f358d5789d950c3d1a563 Signed-off-by: Colin Cross --- diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c index 8625b013742b..008614d44e97 100644 --- a/arch/arm/mach-tegra/clock.c +++ b/arch/arm/mach-tegra/clock.c @@ -511,6 +511,30 @@ int __init tegra_init_dvfs(void) late_initcall(tegra_init_dvfs); +int __init tegra_disable_boot_clocks(void) +{ + unsigned long flags; + + struct clk *c; + + spin_lock_irqsave(&clock_lock, flags); + + list_for_each_entry(c, &clocks, node) { + if (c->refcnt == 0 && c->state == ON && + c->ops && c->ops->disable) { + pr_warning("Disabling clock %s left on by bootloader\n", + c->name); + c->ops->disable(c); + c->state = OFF; + } + } + + spin_unlock_irqrestore(&clock_lock, flags); + + return 0; +} +late_initcall(tegra_disable_boot_clocks); + #ifdef CONFIG_DEBUG_FS static struct dentry *clk_debugfs_root;