From e3cb85a78d543d4c6a62352a6d80d6bbb1dd5bb5 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Wed, 25 Jun 2014 09:00:55 +0300 Subject: gpu: nvgpu: Wait for CBC op to finish for all LTCs We broadcast CBC operation to all LTCs, but we wait for only one to finish. Bug 1507804 Change-Id: Ib10aa5fe3a34b31862b2d5162c77441f7444a7ba Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/428123 --- drivers/gpu/nvgpu/gm20b/ltc_gm20b.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gm20b/ltc_gm20b.c') diff --git a/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c b/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c index 7a2bb5fd..b9c3b32d 100644 --- a/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c @@ -103,7 +103,7 @@ static int gm20b_ltc_cbc_ctrl(struct gk20a *g, enum gk20a_cbc_op op, { int err = 0; struct gr_gk20a *gr = &g->gr; - u32 fbp, slice, ctrl1, val, hw_op = 0; + u32 ltc, slice, ctrl1, val, hw_op = 0; unsigned long end_jiffies = jiffies + msecs_to_jiffies(gk20a_get_gr_idle_timeout(g)); u32 delay = GR_IDLE_CHECK_DEFAULT; @@ -133,13 +133,13 @@ static int gm20b_ltc_cbc_ctrl(struct gk20a *g, enum gk20a_cbc_op op, gk20a_writel(g, ltc_ltcs_ltss_cbc_ctrl1_r(), gk20a_readl(g, ltc_ltcs_ltss_cbc_ctrl1_r()) || hw_op); - for (fbp = 0; fbp < gr->num_fbps; fbp++) { + for (ltc = 0; ltc < g->ltc_count; ltc++) { for (slice = 0; slice < slices_per_ltc; slice++) { delay = GR_IDLE_CHECK_DEFAULT; ctrl1 = ltc_ltc0_lts0_cbc_ctrl1_r() + - fbp * proj_ltc_stride_v() + + ltc * proj_ltc_stride_v() + slice * proj_lts_stride_v(); do { -- cgit v1.2.2