From ecaa5c1b1fc298877ea54d8d8b02e75684f555af Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Thu, 19 Feb 2015 09:41:14 -0800 Subject: gpu: nvgpu: Do not return timedout in emulation We have infinite timeouts for loops in emulation. Some functions with the loops still return error if we exceed the original retry count. Change-Id: I1f9ddbfc0acd9f30f6bd49d9e748d8d8fbefa154 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/709491 --- drivers/gpu/nvgpu/gk20a/ltc_gk20a.c | 2 +- drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c index 4c6543bb..4359f282 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c @@ -217,7 +217,7 @@ static void gk20a_mm_g_elpg_flush_locked(struct gk20a *g) break; } while (retry >= 0 || !tegra_platform_is_silicon()); - if (retry < 0) + if (tegra_platform_is_silicon() && retry < 0) gk20a_warn(dev_from_gk20a(g), "g_elpg_flush too many retries"); diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 10bdc076..8d9488fd 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c @@ -2787,7 +2787,7 @@ int gk20a_mm_fb_flush(struct gk20a *g) break; } while (retry >= 0 || !tegra_platform_is_silicon()); - if (retry < 0) { + if (tegra_platform_is_silicon() && retry < 0) { gk20a_warn(dev_from_gk20a(g), "fb_flush too many retries"); ret = -EBUSY; @@ -2827,7 +2827,7 @@ static void gk20a_mm_l2_invalidate_locked(struct gk20a *g) break; } while (retry >= 0 || !tegra_platform_is_silicon()); - if (retry < 0) + if (tegra_platform_is_silicon() && retry < 0) gk20a_warn(dev_from_gk20a(g), "l2_system_invalidate too many retries"); @@ -2881,7 +2881,7 @@ void gk20a_mm_l2_flush(struct gk20a *g, bool invalidate) break; } while (retry >= 0 || !tegra_platform_is_silicon()); - if (retry < 0) + if (tegra_platform_is_silicon() && retry < 0) gk20a_warn(dev_from_gk20a(g), "l2_flush_dirty too many retries"); @@ -2954,7 +2954,7 @@ void gk20a_mm_tlb_invalidate(struct vm_gk20a *vm) retry--; } while (retry >= 0 || !tegra_platform_is_silicon()); - if (retry < 0) { + if (tegra_platform_is_silicon() && retry < 0) { gk20a_warn(dev_from_gk20a(g), "wait mmu fifo space too many retries"); goto out; @@ -2977,7 +2977,7 @@ void gk20a_mm_tlb_invalidate(struct vm_gk20a *vm) udelay(2); } while (retry >= 0 || !tegra_platform_is_silicon()); - if (retry < 0) + if (tegra_platform_is_silicon() && retry < 0) gk20a_warn(dev_from_gk20a(g), "mmu invalidate too many retries"); -- cgit v1.2.2