summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra11_emc.c
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2012-09-29 20:32:18 -0700
committerSimone Willett <swillett@nvidia.com>2012-10-22 13:56:56 -0700
commitc5e1e296c277136089be265fedaae7273c29baed (patch)
tree9843979d41a6f7c495f6cbcb739d32b02075b272 /arch/arm/mach-tegra/tegra11_emc.c
parenta2e058e8abfa328dcd6f82ac8e662090aaaf95a6 (diff)
ARM: tegra11: clock: Add dummy EMC ccfifo write
Added dummy EMC ccfifo write to read-only register to make sure that at least one ccfifo write is pushed after stall-after-change marker. Without this dummy write EMC ccfifo (and the entire system) will hang after clock change that does not update other registers via ccfifo. Signed-off-by: Alex Frid <afrid@nvidia.com> Reviewed-on: http://git-master/r/139974 (cherry picked from commit 2c57e98d8b4e2781666412773f10794e707d2e7f) Change-Id: I9784986c129fd60dcdf17af2fd7eb0088fbaf43e Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-on: http://git-master/r/146260 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'arch/arm/mach-tegra/tegra11_emc.c')
-rw-r--r--arch/arm/mach-tegra/tegra11_emc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/tegra11_emc.c b/arch/arm/mach-tegra/tegra11_emc.c
index 2631837c71e4..6f7a8c5b4243 100644
--- a/arch/arm/mach-tegra/tegra11_emc.c
+++ b/arch/arm/mach-tegra/tegra11_emc.c
@@ -598,6 +598,9 @@ static noinline void emc_set_clock(const struct tegra11_emc_table *next_timing,
ccfifo_writel(EMC_ZQ_CAL_LONG_CMD_DEV1, EMC_ZQ_CAL);
}
+ /* 10.1 dummy write to RO register to remove stall after change */
+ ccfifo_writel(0, EMC_CCFIFO_STATUS);
+
/* 11.5 program burst_up_down registers if emc rate is going down */
if (next_timing->rate < last_timing->rate) {
for (i = 0; i < next_timing->burst_up_down_regs_num; i++)