diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index fe0584f63..56d223ddb 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c @@ -3811,12 +3811,16 @@ static int gr_gv11b_ecc_scrub_sm_l1_tag(struct gk20a *g) nvgpu_log_info(g, "gr_gv11b_ecc_scrub_sm_l1_tag"); scrub_mask = (gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_el1_0_task_f() | - gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_el1_1_task_f()); + gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_el1_1_task_f() | + gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_pixprf_task_f() | + gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_miss_fifo_task_f()); gk20a_writel(g, gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_r(), scrub_mask); scrub_done = (gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_el1_0_init_f() | - gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_el1_1_init_f()); + gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_el1_1_init_f() | + gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_pixprf_init_f() | + gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_miss_fifo_init_f()); return gr_gv11b_ecc_scrub_is_done(g, gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_r(), scrub_mask, scrub_done); 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 29999163f..1e82456fe 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 @@ -1112,6 +1112,22 @@ static inline u32 gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_el1_1_task_f(void { return 0x2U; } +static inline u32 gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_pixprf_f(u32 v) +{ + return (v & 0x1U) << 4U; +} +static inline u32 gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_pixprf_task_f(void) +{ + return 0x10U; +} +static inline u32 gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_miss_fifo_f(u32 v) +{ + return (v & 0x1U) << 5U; +} +static inline u32 gr_pri_gpcs_tpcs_sm_l1_tag_ecc_control_scrub_miss_fifo_task_f(void) +{ + return 0x20U; +} static inline u32 gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_r(void) { return 0x00504620U; @@ -1132,6 +1148,22 @@ static inline u32 gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_el1_1_init_f(void { return 0x0U; } +static inline u32 gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_pixprf_f(u32 v) +{ + return (v & 0x1U) << 4U; +} +static inline u32 gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_pixprf_init_f(void) +{ + return 0x0U; +} +static inline u32 gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_miss_fifo_f(u32 v) +{ + return (v & 0x1U) << 5U; +} +static inline u32 gr_pri_gpc0_tpc0_sm_l1_tag_ecc_control_scrub_miss_fifo_init_f(void) +{ + return 0x0U; +} static inline u32 gr_pri_gpcs_tpcs_sm_cbu_ecc_control_r(void) { return 0x00419e34U;