diff options
author | Krishna Reddy <vdumpa@nvidia.com> | 2014-08-28 15:06:27 -0700 |
---|---|---|
committer | Winnie Hsu <whsu@nvidia.com> | 2014-11-05 16:02:09 -0800 |
commit | ed56e0d628213375f32a08d3eb06f22b1aa4f91a (patch) | |
tree | 0f0f2846282027ee1f00f5113e45adde57dfda7b | |
parent | d3ead8390747e8b9aa245be3ee8f2aff257c594b (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.c | 10 |
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; |