clk: tegra: defer application of init table
authorStephen Warren <swarren@nvidia.com>
Mon, 25 Mar 2013 19:22:24 +0000 (13:22 -0600)
committerStephen Warren <swarren@nvidia.com>
Thu, 4 Apr 2013 22:09:05 +0000 (16:09 -0600)
commit441f199a37cfd66c5dd8dd45490bd3ea6971117d
tree0f7570e7985ea2b62f558e43d33caef6efa7e989
parent82ce742140f32394cc5be75f1c98cdbbff284582
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>
arch/arm/mach-tegra/tegra.c
drivers/clk/tegra/clk-tegra20.c
drivers/clk/tegra/clk-tegra30.c
drivers/clk/tegra/clk.c
drivers/clk/tegra/clk.h
include/linux/clk/tegra.h