summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Kiminki <skiminki@nvidia.com>2018-02-01 13:51:33 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-02-06 08:21:44 -0500
commit0c0d6ba4880f841e26183c26637e54d7a7a9a4dc (patch)
tree7dd71bb2ad56f0852a13b32f00ed41480906792d
parent068217e5674d9d396b294331012e1effd18c345a (diff)
gpu: nvgpu: gv11b: disable SWDX spill buffer invalidates
Disable SWDX spill buffer invalidates as is required by HW. Since this register is context-switched, add these in the GR init sequence. Bug 2040262 Change-Id: I0be10d12516bce6ce6f8fb0e8af5b67f8af92257 Signed-off-by: Sami Kiminki <skiminki@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1650563 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.c7
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h16
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
index 67bd4b88..46f5ffb5 100644
--- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
@@ -2777,6 +2777,13 @@ int gr_gv11b_init_fs_state(struct gk20a *g)
2777 g->gr.fecs_feature_override_ecc_val); 2777 g->gr.fecs_feature_override_ecc_val);
2778 } 2778 }
2779 2779
2780 /* Disable SWDX spill buffer invalidates */
2781 data = gk20a_readl(g, gr_gpcs_swdx_spill_unit_r());
2782 data = set_field(
2783 data, gr_gpcs_swdx_spill_unit_spill_buffer_cache_mgmt_mode_m(),
2784 gr_gpcs_swdx_spill_unit_spill_buffer_cache_mgmt_mode_disabled_f());
2785 gk20a_writel(g, gr_gpcs_swdx_spill_unit_r(), data);
2786
2780 err = gr_gk20a_init_fs_state(g); 2787 err = gr_gk20a_init_fs_state(g);
2781 if (err) 2788 if (err)
2782 return err; 2789 return err;
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 c430122d..4458265d 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
@@ -3840,6 +3840,22 @@ static inline u32 gr_gpcs_swdx_dss_zbc_s_01_to_04_format_r(void)
3840{ 3840{
3841 return 0x00418198U; 3841 return 0x00418198U;
3842} 3842}
3843static inline u32 gr_gpcs_swdx_spill_unit_r(void)
3844{
3845 return 0x00418e9cU;
3846}
3847static inline u32 gr_gpcs_swdx_spill_unit_spill_buffer_cache_mgmt_mode_m(void)
3848{
3849 return 0x1U << 16U;
3850}
3851static inline u32 gr_gpcs_swdx_spill_unit_spill_buffer_cache_mgmt_mode_disabled_f(void)
3852{
3853 return 0x0U;
3854}
3855static inline u32 gr_gpcs_swdx_spill_unit_spill_buffer_cache_mgmt_mode_enabled_f(void)
3856{
3857 return 0x10000U;
3858}
3843static inline u32 gr_gpcs_setup_attrib_cb_base_r(void) 3859static inline u32 gr_gpcs_setup_attrib_cb_base_r(void)
3844{ 3860{
3845 return 0x00418810U; 3861 return 0x00418810U;