kernel-fxtec-pro1x/arch/arm/mach-tegra
Stephen Warren ce32ddaa70 ARM: tegra: cpu-tegra: explicitly manage re-parenting
When changing a PLL's rate, it must have no active children. The CPU
clock cannot be stopped, and CPU clock's divider is not used. The old
clock driver used to handle this by internally reparenting the CPU clock
onto a different PLL when changing the CPU clock rate. However, the new
common-clock based clock driver does not do this, and probably cannot do
this due to the locking issues it would cause.

To solve this, have the Tegra cpufreq driver explicitly perform the
reparenting operations itself. This is probably reasonable anyway,
since such reparenting is somewhat a matter of policy (e.g. which
alternate clock source to use, whether to leave the CPU clock a child
of the alternate clock source if it's running at the desired rate),
and hence is something more appropriate for the cpufreq driver than
the core clock driver anyway.

Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
2012-09-11 10:06:14 -06:00
..
include/mach ARM: tegra: Add clk_tegra structure and helper functions 2012-09-06 11:47:20 -06:00
apbio.c ARM: tegra: apbio: use dmaengine based dma driver 2012-07-06 11:49:13 -06:00
apbio.h ARM: tegra: apbio access using dma for tegra20 only 2012-07-06 11:48:56 -06:00
board-dt-tegra20.c ARM: tegra: turn on UART A clock at boot 2012-09-06 11:47:18 -06:00
board-dt-tegra30.c Merge branch 'for-3.6' of git://gitorious.org/linux-pwm/linux-pwm 2012-07-30 09:22:37 -07:00
board-harmony-pcie.c ARM: tegra: harmony: init regulators, PCIe when booting from DT 2012-06-20 12:37:42 -06:00
board-harmony-pinmux.c ARM: tegra: Switch to new pinctrl driver 2012-04-18 10:26:39 -06:00
board-harmony-power.c ARM: tegra: more regulator fixes for Harmony 2012-08-09 15:16:40 +02:00
board-harmony.c arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
board-harmony.h
board-paz00-pinmux.c ARM: tegra: Switch to new pinctrl driver 2012-04-18 10:26:39 -06:00
board-paz00.c ARM: tegra: paz00: enable WiFi rfkill when booting from device tree 2012-06-20 12:37:42 -06:00
board-paz00.h ARM: tegra: paz00: fix wrong SD1 power gpio 2012-02-06 18:32:50 -08:00
board-pinmux.c ARM: dt: tegra20: add pinmux to device tree 2012-04-18 10:26:39 -06:00
board-pinmux.h pinctrl: tegra: refactor probe handling 2012-04-18 10:26:40 -06:00
board-trimslice-pinmux.c ARM: tegra: Switch to new pinctrl driver 2012-04-18 10:26:39 -06:00
board-trimslice.c arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
board-trimslice.h
board.h ARM: tegra: paz00: enable WiFi rfkill when booting from device tree 2012-06-20 12:37:42 -06:00
clock.c ARM: tegra: Remove duplicate code 2012-09-06 11:47:20 -06:00
clock.h ARM: tegra: Remove duplicate code 2012-09-06 11:47:20 -06:00
common.c ARM: tegra: Remove duplicate code 2012-09-06 11:47:20 -06:00
cpu-tegra.c ARM: tegra: cpu-tegra: explicitly manage re-parenting 2012-09-11 10:06:14 -06:00
cpuidle.c ARM: tegra: Remove flow controller programming 2012-06-11 11:48:43 -06:00
devices.c arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00
devices.h arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00
dma.c ARM: tegra: dma: rename driver name for clock to "tegra-apbdma" 2012-06-26 13:04:58 -06:00
flowctrl.c ARM: tegra: Fix flow controller accesses 2012-05-14 10:22:01 -06:00
flowctrl.h ARM: tegra: functions to access the flowcontroller 2012-02-26 14:44:42 -08:00
fuse.c ARM: More SoC support updates 2012-03-28 12:24:40 -07:00
fuse.h ARM: tegra: export Tegra chipid 2012-02-26 14:44:19 -08:00
gpio-names.h
headsmp.S ARM: tegra: support for secondary cores on Tegra30 2012-02-26 14:44:46 -08:00
hotplug.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
io.c ARM: tegra: clean-up mach/io.h 2012-03-06 21:34:41 -06:00
irq.c ARM: tegra: add support for tegra30 interrupts 2012-02-06 09:16:14 -08:00
Kconfig ARM: tegra: remove Seaboard board files 2012-06-20 12:37:41 -06:00
Makefile ARM: tegra: Rename tegra20 clock file 2012-09-06 11:47:19 -06:00
Makefile.boot arm-soc: board specific updates 2012-07-23 17:34:48 -07:00
pcie.c ARM: tegra: add clk_prepare/clk_unprepare 2012-06-11 11:53:29 -06:00
platsmp.c ARM: tegra: support for secondary cores on Tegra30 2012-02-26 14:44:46 -08:00
pmc.c ARM: tegra: Add a simple PMC driver 2012-02-06 18:25:01 -08:00
pmc.h ARM: tegra: Add a simple PMC driver 2012-02-06 18:25:01 -08:00
powergate.c ARM: tegra: add clk_prepare/clk_unprepare 2012-06-11 11:53:29 -06:00
reset.c ARM: tegra: make tegra_cpu_reset_handler_enable() __init 2012-06-18 16:42:57 -07:00
reset.h ARM: tegra: rework Tegra secondary CPU core bringup 2012-02-26 14:44:44 -08:00
sleep.S ARM: tegra: Remove flow controller programming 2012-06-11 11:48:43 -06:00
tegra2_emc.c ARM: tegra: Fix EMC pdata initialization from registers 2012-02-06 18:25:01 -08:00
tegra2_emc.h ARM: tegra: emc: convert tegra2_emc to a platform driver 2012-02-06 18:24:59 -08:00
tegra20_clocks.c ARM: tegra: fix overflow in tegra20_pll_clk_round_rate() 2012-09-11 10:05:55 -06:00
tegra20_clocks.h ARM: tegra: Port tegra to generic clock framework 2012-09-06 11:47:20 -06:00
tegra20_clocks_data.c ARM: tegra: remove tegra_timer from tegra_list_clks 2012-09-06 11:47:21 -06:00
tegra30_clocks.c ARM: tegra: Fix data type for io address 2012-09-07 09:20:37 -06:00
tegra30_clocks.h ARM: tegra30: clocks: fix the wrong tegra_audio_sync_clk_ops name 2012-09-06 11:47:21 -06:00
tegra30_clocks_data.c ARM: tegra: remove tegra_timer from tegra_list_clks 2012-09-06 11:47:21 -06:00
timer.c ARM: tegra: add clk_prepare/clk_unprepare 2012-06-11 11:53:29 -06:00
usb_phy.c ARM: tegra: add clk_prepare/clk_unprepare 2012-06-11 11:53:29 -06:00