diff options
author | Alex Frid <afrid@nvidia.com> | 2012-03-14 23:00:52 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-04-17 01:33:55 -0700 |
commit | f7adaff03ba1bab6570736eed02145d39326a276 (patch) | |
tree | a21bb6d81579c2e74de6afcaf8b03079ff7e8e2f /arch/arm/mach-tegra/tegra3_clocks.c | |
parent | f8bcc67d13d72deb7b506b4a1cad581f3caf45dd (diff) |
ARM: tegra: clock: Apply shared bus ceiling always
Apply shared bus ceiling regardless of whether Tegra3 SHARED_CEILING
user is enabled or disabled. Thus, we no longer need to enable ceiling
user - and the bus itself via child-parent relations - to cap the bus
rate.
Bug 954896
Change-Id: I7f96f03f05fd39334c9ee977cd1ac18d86a1fc0d
Signed-off-by: Alex Frid <afrid@nvidia.com>
(cherry picked from commit 07b1a707aa14dcab37f095a3bb78af79a54c399b)
Reviewed-on: http://git-master/r/95739
Reviewed-by: Daniel Solomon <daniels@nvidia.com>
Tested-by: Daniel Solomon <daniels@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra3_clocks.c')
-rw-r--r-- | arch/arm/mach-tegra/tegra3_clocks.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/tegra3_clocks.c b/arch/arm/mach-tegra/tegra3_clocks.c index 0bceeeb9469f..d5e101ec3502 100644 --- a/arch/arm/mach-tegra/tegra3_clocks.c +++ b/arch/arm/mach-tegra/tegra3_clocks.c @@ -3007,9 +3007,13 @@ static int tegra3_clk_shared_bus_update(struct clk *bus) list_for_each_entry(c, &bus->shared_bus_list, u.shared_bus_user.node) { - /* Ignore requests from disabled users and from users with - fixed bus-to-client ratio */ - if (c->u.shared_bus_user.enabled) { + /* Ignore requests from disabled floor and bw users, and from + * auto-users riding the bus. Always honor ceiling users, even + * if they are disabled - we do not want to keep enabled parent + * bus just because ceiling is set. + */ + if (c->u.shared_bus_user.enabled || + (c->u.shared_bus_user.mode == SHARED_CEILING)) { switch (c->u.shared_bus_user.mode) { case SHARED_BW: bw += c->u.shared_bus_user.rate; |