From 068217e5674d9d396b294331012e1effd18c345a Mon Sep 17 00:00:00 2001 From: Sami Kiminki Date: Wed, 31 Jan 2018 23:09:28 +0200 Subject: gpu: nvgpu: gv11b: disable SCC pagepool invalidates Disable SCC pagepool invalidates as is required by HW. Since this register is context-switched, add these in the GR init sequence. Bug 2040262 Change-Id: I8dd1b7c7c4b0544878ca57b1261f9c85fa380d47 Signed-off-by: Sami Kiminki Reviewed-on: https://git-master.nvidia.com/r/1649719 Reviewed-by: Alex Waterman Reviewed-by: Terje Bergstrom GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gv11b/gr_gv11b.c | 6 ++++++ drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index 3e207811..67bd4b88 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c @@ -2765,6 +2765,12 @@ int gr_gv11b_init_fs_state(struct gk20a *g) gr_gpcs_tpcs_sm_disp_ctrl_re_suppress_disable_f()); gk20a_writel(g, gr_gpcs_tpcs_sm_disp_ctrl_r(), data); + /* Disable SCC pagepool invalidates */ + data = gk20a_readl(g, gr_scc_debug_r()); + data = set_field(data, gr_scc_debug_pagepool_invalidates_m(), + gr_scc_debug_pagepool_invalidates_disable_f()); + gk20a_writel(g, gr_scc_debug_r(), data); + if (g->gr.fecs_feature_override_ecc_val != 0) { gk20a_writel(g, gr_fecs_feature_override_ecc_r(), diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h index d34dcf33..c430122d 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h @@ -2932,6 +2932,22 @@ static inline u32 gr_ds_num_tpc_per_gpc_r(u32 i) { return 0x00405870U + i*4U; } +static inline u32 gr_scc_debug_r(void) +{ + return 0x00408000U; +} +static inline u32 gr_scc_debug_pagepool_invalidates_m(void) +{ + return 0x1U << 9U; +} +static inline u32 gr_scc_debug_pagepool_invalidates_disable_f(void) +{ + return 0x200U; +} +static inline u32 gr_scc_debug_pagepool_invalidates_enable_f(void) +{ + return 0x0U; +} static inline u32 gr_scc_bundle_cb_base_r(void) { return 0x00408004U; -- cgit v1.2.2