summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-06-22 17:43:05 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-27 13:44:05 -0400
commit5572bfa86a6afc7ae3c2f4a61e568f8e759c6ecc (patch)
treebe8c8160c1b83646163a3b3e7b7587c8362f5991 /drivers/gpu/nvgpu/gv11b/gr_gv11b.c
parent5107bda90a1e55d4850a8f1c27008f05c420b4ec (diff)
gpu: nvgpu: gv11b: sw method for NVC397_SET_TEX_IN_DBG
Added sw method for NVC397_SET_TEX_IN_DBG with following data fields: data:0 PRI_TEX_IN_DBG_TSL1_RVCH_INVALIDATE data:1 PRI_SM_L1TAG_CTRL_CACHE_SURFACE_LD data:2 PRI_SM_L1TAG_CTRL_CACHE_SURFACE_ST Bug 1934197 Change-Id: I0956d3f5c859ac23e16fb6b7372acd098dfb6d16 Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: https://git-master/r/1507479 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: Wei Sun <wsun@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/gr_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
index 542ed1ff..7993e071 100644
--- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
@@ -1069,6 +1069,31 @@ static void gr_gv11b_set_coalesce_buffer_size(struct gk20a *g, u32 data)
1069 gk20a_dbg_fn("done"); 1069 gk20a_dbg_fn("done");
1070} 1070}
1071 1071
1072static void gr_gv11b_set_tex_in_dbg(struct gk20a *g, u32 data)
1073{
1074 u32 val;
1075 bool flag;
1076
1077 gk20a_dbg_fn("");
1078
1079 val = gk20a_readl(g, gr_gpcs_tpcs_tex_in_dbg_r());
1080 flag = (data & NVC397_SET_TEX_IN_DBG_TSL1_RVCH_INVALIDATE) ? 1 : 0;
1081 val = set_field(val, gr_gpcs_tpcs_tex_in_dbg_tsl1_rvch_invalidate_m(),
1082 gr_gpcs_tpcs_tex_in_dbg_tsl1_rvch_invalidate_f(flag));
1083 gk20a_writel(g, gr_gpcs_tpcs_tex_in_dbg_r(), val);
1084
1085 val = gk20a_readl(g, gr_gpcs_tpcs_sm_l1tag_ctrl_r());
1086 flag = (data &
1087 NVC397_SET_TEX_IN_DBG_SM_L1TAG_CTRL_CACHE_SURFACE_LD) ? 1 : 0;
1088 val = set_field(val, gr_gpcs_tpcs_sm_l1tag_ctrl_cache_surface_ld_m(),
1089 gr_gpcs_tpcs_sm_l1tag_ctrl_cache_surface_ld_f(flag));
1090 flag = (data &
1091 NVC397_SET_TEX_IN_DBG_SM_L1TAG_CTRL_CACHE_SURFACE_ST) ? 1 : 0;
1092 val = set_field(val, gr_gpcs_tpcs_sm_l1tag_ctrl_cache_surface_st_m(),
1093 gr_gpcs_tpcs_sm_l1tag_ctrl_cache_surface_st_f(flag));
1094 gk20a_writel(g, gr_gpcs_tpcs_sm_l1tag_ctrl_r(), val);
1095}
1096
1072 1097
1073static void gv11b_gr_set_shader_exceptions(struct gk20a *g, u32 data) 1098static void gv11b_gr_set_shader_exceptions(struct gk20a *g, u32 data)
1074{ 1099{
@@ -1120,6 +1145,9 @@ static int gr_gv11b_handle_sw_method(struct gk20a *g, u32 addr,
1120 case NVC097_SET_COALESCE_BUFFER_SIZE: 1145 case NVC097_SET_COALESCE_BUFFER_SIZE:
1121 gr_gv11b_set_coalesce_buffer_size(g, data); 1146 gr_gv11b_set_coalesce_buffer_size(g, data);
1122 break; 1147 break;
1148 case NVC397_SET_TEX_IN_DBG:
1149 gr_gv11b_set_tex_in_dbg(g, data);
1150 break;
1123 default: 1151 default:
1124 goto fail; 1152 goto fail;
1125 } 1153 }