summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2014-06-25 02:00:55 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:10:18 -0400
commite3cb85a78d543d4c6a62352a6d80d6bbb1dd5bb5 (patch)
tree274a4f8cfa3e5d16551315050c0f6bdad49fd173 /drivers/gpu/nvgpu/gm20b/ltc_gm20b.c
parent20408d5b32e5564b2fb410bc5b0bb0a198629437 (diff)
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 <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/428123
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/ltc_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/ltc_gm20b.c6
1 files changed, 3 insertions, 3 deletions
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,
103{ 103{
104 int err = 0; 104 int err = 0;
105 struct gr_gk20a *gr = &g->gr; 105 struct gr_gk20a *gr = &g->gr;
106 u32 fbp, slice, ctrl1, val, hw_op = 0; 106 u32 ltc, slice, ctrl1, val, hw_op = 0;
107 unsigned long end_jiffies = jiffies + 107 unsigned long end_jiffies = jiffies +
108 msecs_to_jiffies(gk20a_get_gr_idle_timeout(g)); 108 msecs_to_jiffies(gk20a_get_gr_idle_timeout(g));
109 u32 delay = GR_IDLE_CHECK_DEFAULT; 109 u32 delay = GR_IDLE_CHECK_DEFAULT;
@@ -133,13 +133,13 @@ static int gm20b_ltc_cbc_ctrl(struct gk20a *g, enum gk20a_cbc_op op,
133 gk20a_writel(g, ltc_ltcs_ltss_cbc_ctrl1_r(), 133 gk20a_writel(g, ltc_ltcs_ltss_cbc_ctrl1_r(),
134 gk20a_readl(g, ltc_ltcs_ltss_cbc_ctrl1_r()) || hw_op); 134 gk20a_readl(g, ltc_ltcs_ltss_cbc_ctrl1_r()) || hw_op);
135 135
136 for (fbp = 0; fbp < gr->num_fbps; fbp++) { 136 for (ltc = 0; ltc < g->ltc_count; ltc++) {
137 for (slice = 0; slice < slices_per_ltc; slice++) { 137 for (slice = 0; slice < slices_per_ltc; slice++) {
138 138
139 delay = GR_IDLE_CHECK_DEFAULT; 139 delay = GR_IDLE_CHECK_DEFAULT;
140 140
141 ctrl1 = ltc_ltc0_lts0_cbc_ctrl1_r() + 141 ctrl1 = ltc_ltc0_lts0_cbc_ctrl1_r() +
142 fbp * proj_ltc_stride_v() + 142 ltc * proj_ltc_stride_v() +
143 slice * proj_lts_stride_v(); 143 slice * proj_lts_stride_v();
144 144
145 do { 145 do {