ARM: tegra11: clock: Adjust cbus dvfs table dynamically
authorAlex Frid <afrid@nvidia.com>
Thu, 10 May 2012 05:36:31 +0000 (22:36 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 19:11:24 +0000 (12:11 -0700)
commitbd49432e00ffa02f8cb731756155888e8b443096
tree5fd72b57f4e33c4f3dac0af59a971834864e916e
parent0fa7b944565b8bcdb129d39010e181e433d33364
ARM: tegra11: clock: Adjust cbus dvfs table dynamically

Dynamically adjusted cumulative cbus dvfs table instead of using
static table that specifies worst case voltage requirements for
all cbus clients. Table adjustment takes into account only clients
enabled when cbus rate is updated, and ignores disabled clients.
Adjustment algorithm selects the dvfs table of the slowest enabled
client as new cumulative cbus dvfs table.

Changing dvfs table in flight makes cbus clock unique from voltage
control prospective: voltage requirements may change even when rate
is not changing; moreover voltage may go down while rate is going up
and vice versa. Hence, separated cbus update from common shared bus
rate control.

Bug 965692

Change-Id: I662fd08ab0481200221c7786edfa5249df567d54
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/102716
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bo Yan <byan@nvidia.com>

Rebase-Id: R7af46bab4520754b0802a6128a2db2f71930f0cd
arch/arm/mach-tegra/Kconfig
arch/arm/mach-tegra/clock.h
arch/arm/mach-tegra/tegra11_clocks.c