summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2016-04-19 13:27:11 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-04-26 12:46:04 -0400
commitec62c649b5338e7608ea82546135e88f443b90a8 (patch)
treef7190b7d86fafd9764a13a50689ef70bdff66300 /drivers/gpu/nvgpu/gm20b/gr_gm20b.c
parentb10e02f53769c6b8dcc58db09ae1cec0cdca4417 (diff)
gpu: nvgpu: Idle GR before calling PMU ZBC save
On gk20a when PMU is updating ZBC colors it is reading them from L2. But L2 has one port, and ZBC reads can race with other transactions. Idle graphics before sending PMU the ZBC_UPDATE request. Also makes pmu_save_zbc a HAL, because PMU ucode has changes to bypass this problem on some chips. Bug 1746047 Change-Id: Id8fcd6850af7ef1d8f0a6aafa0fe6b4f88b5f2d9 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1129017
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/gr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index 40925f48..5b00078f 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -1372,6 +1372,8 @@ void gm20b_init_gr(struct gpu_ops *gops)
1372 gops->gr.add_zbc_depth = gr_gk20a_add_zbc_depth; 1372 gops->gr.add_zbc_depth = gr_gk20a_add_zbc_depth;
1373 gops->gr.zbc_set_table = gk20a_gr_zbc_set_table; 1373 gops->gr.zbc_set_table = gk20a_gr_zbc_set_table;
1374 gops->gr.zbc_query_table = gr_gk20a_query_zbc; 1374 gops->gr.zbc_query_table = gr_gk20a_query_zbc;
1375 gops->gr.pmu_save_zbc = gk20a_pmu_save_zbc;
1376 gops->gr.add_zbc = gr_gk20a_add_zbc;
1375 gops->gr.pagepool_default_size = gr_gm20b_pagepool_default_size; 1377 gops->gr.pagepool_default_size = gr_gm20b_pagepool_default_size;
1376 gops->gr.init_ctx_state = gr_gk20a_init_ctx_state; 1378 gops->gr.init_ctx_state = gr_gk20a_init_ctx_state;
1377 gops->gr.alloc_gr_ctx = gr_gm20b_alloc_gr_ctx; 1379 gops->gr.alloc_gr_ctx = gr_gm20b_alloc_gr_ctx;