summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Peltonen <lpeltonen@nvidia.com>2017-07-10 08:06:31 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-07-14 05:54:35 -0400
commit2272cedfbacf271a0faacfd054240fea3027423d (patch)
treedaed0c86be3ef5bb2ebb73ded95d66c301a8d85c
parent4074484f756734d9f1902944dc80966f3659bb39 (diff)
gpu: nvgu: Support SET_BES_CROP_DEBUG3 sw method
The new SET_BES_CROP_DEBUG3 sw method is used to flip two fields in the NV_PGRAPH_PRI_BES_CROP_DEBUG3 register. The sw method is used by the user space driver to disable enough ROP optimizations to maintain ZBC state of target tiles. Bug 1942454 Change-Id: I3109fb4120674b15db4998693d0aa65bf0c3c8b5 Signed-off-by: Lauri Peltonen <lpeltonen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1516205 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> GVS: Gerrit_Virtual_Submit
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.c3
-rw-r--r--drivers/gpu/nvgpu/gv11b/gr_gv11b.h1
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h24
3 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 6f3b5f0f..f44c60b0 100644
--- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c
@@ -1177,6 +1177,9 @@ static int gr_gv11b_handle_sw_method(struct gk20a *g, u32 addr,
1177 case NVC397_SET_SKEDCHECK: 1177 case NVC397_SET_SKEDCHECK:
1178 gr_gv11b_set_skedcheck(g, data); 1178 gr_gv11b_set_skedcheck(g, data);
1179 break; 1179 break;
1180 case NVC397_SET_BES_CROP_DEBUG3:
1181 g->ops.gr.set_bes_crop_debug3(g, data);
1182 break;
1180 default: 1183 default:
1181 goto fail; 1184 goto fail;
1182 } 1185 }
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.h b/drivers/gpu/nvgpu/gv11b/gr_gv11b.h
index 1e060bd0..e6149b37 100644
--- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.h
+++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.h
@@ -41,6 +41,7 @@ enum {
41#define NVC397_SET_GO_IDLE_TIMEOUT 0x022c 41#define NVC397_SET_GO_IDLE_TIMEOUT 0x022c
42#define NVC397_SET_TEX_IN_DBG 0x10bc 42#define NVC397_SET_TEX_IN_DBG 0x10bc
43#define NVC397_SET_SKEDCHECK 0x10c0 43#define NVC397_SET_SKEDCHECK 0x10c0
44#define NVC397_SET_BES_CROP_DEBUG3 0x10c4
44 45
45#define NVC397_SET_TEX_IN_DBG_TSL1_RVCH_INVALIDATE 0x1 46#define NVC397_SET_TEX_IN_DBG_TSL1_RVCH_INVALIDATE 0x1
46#define NVC397_SET_TEX_IN_DBG_SM_L1TAG_CTRL_CACHE_SURFACE_LD 0x2 47#define NVC397_SET_TEX_IN_DBG_SM_L1TAG_CTRL_CACHE_SURFACE_LD 0x2
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 53dc7c87..c9dbee52 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
@@ -3918,6 +3918,30 @@ static inline u32 gr_bes_crop_debug3_comp_vdc_4to2_disable_m(void)
3918{ 3918{
3919 return 0x1 << 31; 3919 return 0x1 << 31;
3920} 3920}
3921static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_m(void)
3922{
3923 return 0x1 << 1;
3924}
3925static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_disabled_f(void)
3926{
3927 return 0x0;
3928}
3929static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_enabled_f(void)
3930{
3931 return 0x2;
3932}
3933static inline u32 gr_bes_crop_debug3_blendopt_fill_override_m(void)
3934{
3935 return 0x1 << 2;
3936}
3937static inline u32 gr_bes_crop_debug3_blendopt_fill_override_disabled_f(void)
3938{
3939 return 0x0;
3940}
3941static inline u32 gr_bes_crop_debug3_blendopt_fill_override_enabled_f(void)
3942{
3943 return 0x4;
3944}
3921static inline u32 gr_bes_crop_settings_r(void) 3945static inline u32 gr_bes_crop_settings_r(void)
3922{ 3946{
3923 return 0x00408958; 3947 return 0x00408958;