summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrishna Reddy <vdumpa@nvidia.com>2014-08-28 15:06:27 -0700
committerWinnie Hsu <whsu@nvidia.com>2014-11-05 16:02:09 -0800
commited56e0d628213375f32a08d3eb06f22b1aa4f91a (patch)
tree0f0f2846282027ee1f00f5113e45adde57dfda7b
parentd3ead8390747e8b9aa245be3ee8f2aff257c594b (diff)
arm: tegra: retry on vpr update config failure
sleep and retry on vpr update config on failure. Bug 1517584 Change-Id: Ib3320037aba651de56d2f9f9efcb2cfb9bbdca0a Signed-off-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-on: http://git-master/r/494000 (cherry picked from commit 98bf6523b1b2ddc54529aa392a6ec5f111f17c4b) Reviewed-on: http://git-master/r/592896 GVS: Gerrit_Virtual_Submit
-rw-r--r--arch/arm/mach-tegra/common.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 7e98f7c570f9..271e8228a865 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -201,12 +201,22 @@ static int tegra_update_resize_cfg(phys_addr_t base , size_t size)
{
int err = 0;
#ifdef CONFIG_TRUSTED_LITTLE_KERNEL
+#define MAX_RETRIES 6
+ int retries = MAX_RETRIES;
+retry:
err = gk20a_do_idle();
if (!err) {
/* Config VPR_BOM/_SIZE in MC */
err = te_set_vpr_params((void *)(uintptr_t)base, size);
gk20a_do_unidle();
+ } else {
+ if (retries--) {
+ pr_err("%s:%d: fail retry=%d",
+ __func__, __LINE__, MAX_RETRIES - retries);
+ msleep(1);
+ goto retry;
+ }
}
#endif
return err;