diff options
author | Stephen Warren <swarren@nvidia.com> | 2013-03-25 13:22:24 -0600 |
---|---|---|
committer | Stephen Warren <swarren@nvidia.com> | 2013-04-04 16:09:05 -0600 |
commit | 441f199a37cfd66c5dd8dd45490bd3ea6971117d (patch) | |
tree | 0f7570e7985ea2b62f558e43d33caef6efa7e989 /include/linux/clk | |
parent | 82ce742140f32394cc5be75f1c98cdbbff284582 (diff) | |
download | blackbird-op-linux-441f199a37cfd66c5dd8dd45490bd3ea6971117d.tar.gz blackbird-op-linux-441f199a37cfd66c5dd8dd45490bd3ea6971117d.zip |
clk: tegra: defer application of init table
The Tegra clock driver is initialized during the ARM machine descriptor's
.init_irq() hook. It can't be initialized earlier, since dynamic memory
usage is required. It can't be initialized later, since the .init_timer()
hook needs the clocks initialized. However, at this time, udelay()
doesn't work.
The Tegra clock initialization table may enable some PLLs. Enabling a PLL
may require usage of udelay(). Hence, this can't happen right when the
clock driver is initialized.
To solve this, separate the clock driver initialization from the clock
table processing, so they can execute at separate times.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'include/linux/clk')
-rw-r--r-- | include/linux/clk/tegra.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/clk/tegra.h b/include/linux/clk/tegra.h index 404d6f940872..642789baec74 100644 --- a/include/linux/clk/tegra.h +++ b/include/linux/clk/tegra.h @@ -123,5 +123,6 @@ static inline void tegra_cpu_clock_resume(void) void tegra_periph_reset_deassert(struct clk *c); void tegra_periph_reset_assert(struct clk *c); void tegra_clocks_init(void); +void tegra_clocks_apply_init_table(void); #endif /* __LINUX_CLK_TEGRA_H_ */ |