summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra_bb.c
diff options
context:
space:
mode:
authorVinayak Pane <vpane@nvidia.com>2013-04-29 16:07:59 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 13:11:49 -0700
commit556a584bedfe52f897f5702050b52f3c11ab69f6 (patch)
tree963aa92a6c721257d59f9b134ce73060593c04e9 /arch/arm/mach-tegra/tegra_bb.c
parentc1f6222fcdcc3a078b0289c6ae0dacd32dfbe8c9 (diff)
arm: tegra14x: bb: override DSR when EMC floor is set
Dynamic Self Refresh (DSR) feature in EMC affects BBC's latency. Override DSR when min EMC frequency is set and enable it when BBC becomes idle. Change-Id: I8554910c62bc35a2887e6ed2e49b3240944028dc Signed-off-by: Vinayak Pane <vpane@nvidia.com> Reviewed-on: http://git-master/r/224045 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Steve Lin <stlin@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra_bb.c')
-rw-r--r--arch/arm/mach-tegra/tegra_bb.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/tegra_bb.c b/arch/arm/mach-tegra/tegra_bb.c
index e27d2ffb8cc2..5e4c1750fc33 100644
--- a/arch/arm/mach-tegra/tegra_bb.c
+++ b/arch/arm/mach-tegra/tegra_bb.c
@@ -37,6 +37,7 @@
#include "clock.h"
#include "iomap.h"
#include "sleep.h"
+#include "tegra_emc.h"
/* BB mailbox offset */
#define TEGRA_BB_REG_MAILBOX (0x0)
@@ -889,6 +890,7 @@ static void tegra_bb_emc_dvfs(struct work_struct *work)
/* going from 0 to high */
clk_prepare_enable(bb->emc_clk);
+ tegra_emc_dsr_override(TEGRA_EMC_DSR_OVERRIDE);
clk_set_rate(bb->emc_clk, BBC_MC_MIN_FREQ);
pr_debug("bbc setting floor to %d\n", BBC_MC_MIN_FREQ/1000000);
@@ -903,6 +905,7 @@ static void tegra_bb_emc_dvfs(struct work_struct *work)
spin_unlock_irqrestore(&bb->lock, flags);
/* going from high to 0 */
+ tegra_emc_dsr_override(TEGRA_EMC_DSR_NORMAL);
clk_set_rate(bb->emc_clk, 0);
clk_disable_unprepare(bb->emc_clk);
pr_debug("bbc removing emc floor\n");