From 4a8f0db37976036abfe4d70ff60cd0991a177a7d Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Mon, 17 Mar 2014 14:51:55 +0200 Subject: gpu: nvgpu: gk20a: Fix G_ELPG flush poll We poll completion of flush sequence by polling the broadcast register. The polling should be done for a per-slice register instead. Bug 1457723 Change-Id: I10aba939175b6d05b05f5f26eebebcbe09d9b4a7 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/382521 Reviewed-by: Juha Tukkinen Tested-by: Juha Tukkinen --- drivers/gpu/nvgpu/gk20a/ltc_common.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/ltc_common.c') diff --git a/drivers/gpu/nvgpu/gk20a/ltc_common.c b/drivers/gpu/nvgpu/gk20a/ltc_common.c index cbb27cc7..bc45ac41 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_common.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_common.c @@ -222,13 +222,13 @@ static void gk20a_mm_g_elpg_flush_locked(struct gk20a *g) /* Make sure all previous writes are committed to the L2. There's no guarantee that writes are to DRAM. This will be a sysmembar internal to the L2. */ - gk20a_writel(g, ltc_ltss_g_elpg_r(), - ltc_ltss_g_elpg_flush_pending_f()); + gk20a_writel(g, ltc_ltcs_ltss_g_elpg_r(), + ltc_ltcs_ltss_g_elpg_flush_pending_f()); do { - data = gk20a_readl(g, ltc_ltss_g_elpg_r()); + data = gk20a_readl(g, ltc_ltc0_ltss_g_elpg_r()); - if (ltc_ltss_g_elpg_flush_v(data) == - ltc_ltss_g_elpg_flush_pending_v()) { + if (ltc_ltc0_ltss_g_elpg_flush_v(data) == + ltc_ltc0_ltss_g_elpg_flush_pending_v()) { gk20a_dbg_info("g_elpg_flush 0x%x", data); retry--; usleep_range(20, 40); -- cgit v1.2.2