summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Kiminki <skiminki@nvidia.com>2018-01-31 16:09:28 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-02-06 08:21:41 -0500
commit068217e5674d9d396b294331012e1effd18c345a (patch)
treea6a0be30715bb84e8cf5eb98b1140745a4a2640f
parentd6ce4f7fb4bb9e6f393ff0f938b3ad8375163983 (diff)
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 <skiminki@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1649719 Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.c6
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h16
2 files changed, 22 insertions, 0 deletions
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)
2765 gr_gpcs_tpcs_sm_disp_ctrl_re_suppress_disable_f()); 2765 gr_gpcs_tpcs_sm_disp_ctrl_re_suppress_disable_f());
2766 gk20a_writel(g, gr_gpcs_tpcs_sm_disp_ctrl_r(), data); 2766 gk20a_writel(g, gr_gpcs_tpcs_sm_disp_ctrl_r(), data);
2767 2767
2768 /* Disable SCC pagepool invalidates */
2769 data = gk20a_readl(g, gr_scc_debug_r());
2770 data = set_field(data, gr_scc_debug_pagepool_invalidates_m(),
2771 gr_scc_debug_pagepool_invalidates_disable_f());
2772 gk20a_writel(g, gr_scc_debug_r(), data);
2773
2768 if (g->gr.fecs_feature_override_ecc_val != 0) { 2774 if (g->gr.fecs_feature_override_ecc_val != 0) {
2769 gk20a_writel(g, 2775 gk20a_writel(g,
2770 gr_fecs_feature_override_ecc_r(), 2776 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)
2932{ 2932{
2933 return 0x00405870U + i*4U; 2933 return 0x00405870U + i*4U;
2934} 2934}
2935static inline u32 gr_scc_debug_r(void)
2936{
2937 return 0x00408000U;
2938}
2939static inline u32 gr_scc_debug_pagepool_invalidates_m(void)
2940{
2941 return 0x1U << 9U;
2942}
2943static inline u32 gr_scc_debug_pagepool_invalidates_disable_f(void)
2944{
2945 return 0x200U;
2946}
2947static inline u32 gr_scc_debug_pagepool_invalidates_enable_f(void)
2948{
2949 return 0x0U;
2950}
2935static inline u32 gr_scc_bundle_cb_base_r(void) 2951static inline u32 gr_scc_bundle_cb_base_r(void)
2936{ 2952{
2937 return 0x00408004U; 2953 return 0x00408004U;