summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
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/gk20a/gr_gk20a.h
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/gk20a/gr_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
index 3417610f..3702c82d 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.h
@@ -553,6 +553,9 @@ int gr_gk20a_add_zbc_color(struct gk20a *g, struct gr_gk20a *gr,
553 struct zbc_entry *color_val, u32 index); 553 struct zbc_entry *color_val, u32 index);
554int gr_gk20a_add_zbc_depth(struct gk20a *g, struct gr_gk20a *gr, 554int gr_gk20a_add_zbc_depth(struct gk20a *g, struct gr_gk20a *gr,
555 struct zbc_entry *depth_val, u32 index); 555 struct zbc_entry *depth_val, u32 index);
556int _gk20a_gr_zbc_set_table(struct gk20a *g, struct gr_gk20a *gr,
557 struct zbc_entry *zbc_val);
558void gr_gk20a_pmu_save_zbc(struct gk20a *g, u32 entries);
556int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies, 559int gr_gk20a_wait_idle(struct gk20a *g, unsigned long end_jiffies,
557 u32 expect_delay); 560 u32 expect_delay);
558int gr_gk20a_handle_sm_exception(struct gk20a *g, u32 gpc, u32 tpc, 561int gr_gk20a_handle_sm_exception(struct gk20a *g, u32 gpc, u32 tpc,