diff options
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/gr_gp106.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 29 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h | 24 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_gr_gp10b.h | 24 |
6 files changed, 82 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index c7ade5f6..b1881827 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -182,6 +182,7 @@ struct gpu_ops { | |||
182 | void (*set_alpha_circular_buffer_size)(struct gk20a *g, | 182 | void (*set_alpha_circular_buffer_size)(struct gk20a *g, |
183 | u32 data); | 183 | u32 data); |
184 | void (*set_circular_buffer_size)(struct gk20a *g, u32 data); | 184 | void (*set_circular_buffer_size)(struct gk20a *g, u32 data); |
185 | void (*set_bes_crop_debug3)(struct gk20a *g, u32 data); | ||
185 | void (*enable_hww_exceptions)(struct gk20a *g); | 186 | void (*enable_hww_exceptions)(struct gk20a *g); |
186 | bool (*is_valid_class)(struct gk20a *g, u32 class_num); | 187 | bool (*is_valid_class)(struct gk20a *g, u32 class_num); |
187 | bool (*is_valid_gfx_class)(struct gk20a *g, u32 class_num); | 188 | bool (*is_valid_gfx_class)(struct gk20a *g, u32 class_num); |
diff --git a/drivers/gpu/nvgpu/gp106/gr_gp106.c b/drivers/gpu/nvgpu/gp106/gr_gp106.c index 08d6ec28..bf266b66 100644 --- a/drivers/gpu/nvgpu/gp106/gr_gp106.c +++ b/drivers/gpu/nvgpu/gp106/gr_gp106.c | |||
@@ -98,6 +98,9 @@ static int gr_gp106_handle_sw_method(struct gk20a *g, u32 addr, | |||
98 | case NVC097_SET_RD_COALESCE: | 98 | case NVC097_SET_RD_COALESCE: |
99 | gr_gm20b_set_rd_coalesce(g, data); | 99 | gr_gm20b_set_rd_coalesce(g, data); |
100 | break; | 100 | break; |
101 | case NVC097_SET_BES_CROP_DEBUG3: | ||
102 | g->ops.gr.set_bes_crop_debug3(g, data); | ||
103 | break; | ||
101 | default: | 104 | default: |
102 | goto fail; | 105 | goto fail; |
103 | } | 106 | } |
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index d9d045bd..6ef27abf 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -642,6 +642,31 @@ static void gr_gp10b_set_coalesce_buffer_size(struct gk20a *g, u32 data) | |||
642 | gk20a_dbg_fn("done"); | 642 | gk20a_dbg_fn("done"); |
643 | } | 643 | } |
644 | 644 | ||
645 | static void gr_gp10b_set_bes_crop_debug3(struct gk20a *g, u32 data) | ||
646 | { | ||
647 | u32 val; | ||
648 | |||
649 | gk20a_dbg_fn(""); | ||
650 | |||
651 | val = gk20a_readl(g, gr_bes_crop_debug3_r()); | ||
652 | if ((data & 1)) { | ||
653 | val = set_field(val, | ||
654 | gr_bes_crop_debug3_blendopt_read_suppress_m(), | ||
655 | gr_bes_crop_debug3_blendopt_read_suppress_enabled_f()); | ||
656 | val = set_field(val, | ||
657 | gr_bes_crop_debug3_blendopt_fill_override_m(), | ||
658 | gr_bes_crop_debug3_blendopt_fill_override_enabled_f()); | ||
659 | } else { | ||
660 | val = set_field(val, | ||
661 | gr_bes_crop_debug3_blendopt_read_suppress_m(), | ||
662 | gr_bes_crop_debug3_blendopt_read_suppress_disabled_f()); | ||
663 | val = set_field(val, | ||
664 | gr_bes_crop_debug3_blendopt_fill_override_m(), | ||
665 | gr_bes_crop_debug3_blendopt_fill_override_disabled_f()); | ||
666 | } | ||
667 | gk20a_writel(g, gr_bes_crop_debug3_r(), val); | ||
668 | } | ||
669 | |||
645 | static int gr_gp10b_handle_sw_method(struct gk20a *g, u32 addr, | 670 | static int gr_gp10b_handle_sw_method(struct gk20a *g, u32 addr, |
646 | u32 class_num, u32 offset, u32 data) | 671 | u32 class_num, u32 offset, u32 data) |
647 | { | 672 | { |
@@ -680,6 +705,9 @@ static int gr_gp10b_handle_sw_method(struct gk20a *g, u32 addr, | |||
680 | case NVC097_SET_RD_COALESCE: | 705 | case NVC097_SET_RD_COALESCE: |
681 | gr_gm20b_set_rd_coalesce(g, data); | 706 | gr_gm20b_set_rd_coalesce(g, data); |
682 | break; | 707 | break; |
708 | case NVC097_SET_BES_CROP_DEBUG3: | ||
709 | g->ops.gr.set_bes_crop_debug3(g, data); | ||
710 | break; | ||
683 | default: | 711 | default: |
684 | goto fail; | 712 | goto fail; |
685 | } | 713 | } |
@@ -2364,6 +2392,7 @@ void gp10b_init_gr(struct gpu_ops *gops) | |||
2364 | gr_gp10b_set_alpha_circular_buffer_size; | 2392 | gr_gp10b_set_alpha_circular_buffer_size; |
2365 | gops->gr.set_circular_buffer_size = | 2393 | gops->gr.set_circular_buffer_size = |
2366 | gr_gp10b_set_circular_buffer_size; | 2394 | gr_gp10b_set_circular_buffer_size; |
2395 | gops->gr.set_bes_crop_debug3 = gr_gp10b_set_bes_crop_debug3; | ||
2367 | gops->gr.init_ctx_state = gr_gp10b_init_ctx_state; | 2396 | gops->gr.init_ctx_state = gr_gp10b_init_ctx_state; |
2368 | gops->gr.alloc_gr_ctx = gr_gp10b_alloc_gr_ctx; | 2397 | gops->gr.alloc_gr_ctx = gr_gp10b_alloc_gr_ctx; |
2369 | gops->gr.free_gr_ctx = gr_gp10b_free_gr_ctx; | 2398 | gops->gr.free_gr_ctx = gr_gp10b_free_gr_ctx; |
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.h b/drivers/gpu/nvgpu/gp10b/gr_gp10b.h index 76e48075..aac9eb65 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.h +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.h | |||
@@ -37,6 +37,7 @@ enum { | |||
37 | #define NVC097_SET_RD_COALESCE 0x102c | 37 | #define NVC097_SET_RD_COALESCE 0x102c |
38 | #define NVC097_SET_CIRCULAR_BUFFER_SIZE 0x1280 | 38 | #define NVC097_SET_CIRCULAR_BUFFER_SIZE 0x1280 |
39 | #define NVC097_SET_SHADER_EXCEPTIONS 0x1528 | 39 | #define NVC097_SET_SHADER_EXCEPTIONS 0x1528 |
40 | #define NVC097_SET_BES_CROP_DEBUG3 0x10c4 | ||
40 | #define NVC0C0_SET_SHADER_EXCEPTIONS 0x1528 | 41 | #define NVC0C0_SET_SHADER_EXCEPTIONS 0x1528 |
41 | #define NVC0C0_SET_RD_COALESCE 0x0228 | 42 | #define NVC0C0_SET_RD_COALESCE 0x0228 |
42 | 43 | ||
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h index 9b5a475e..d3f0e185 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_gr_gp106.h | |||
@@ -3738,6 +3738,30 @@ static inline u32 gr_bes_crop_debug3_comp_vdc_4to2_disable_m(void) | |||
3738 | { | 3738 | { |
3739 | return 0x1 << 31; | 3739 | return 0x1 << 31; |
3740 | } | 3740 | } |
3741 | static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_m(void) | ||
3742 | { | ||
3743 | return 0x1 << 1; | ||
3744 | } | ||
3745 | static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_disabled_f(void) | ||
3746 | { | ||
3747 | return 0x0; | ||
3748 | } | ||
3749 | static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_enabled_f(void) | ||
3750 | { | ||
3751 | return 0x2; | ||
3752 | } | ||
3753 | static inline u32 gr_bes_crop_debug3_blendopt_fill_override_m(void) | ||
3754 | { | ||
3755 | return 0x1 << 2; | ||
3756 | } | ||
3757 | static inline u32 gr_bes_crop_debug3_blendopt_fill_override_disabled_f(void) | ||
3758 | { | ||
3759 | return 0x0; | ||
3760 | } | ||
3761 | static inline u32 gr_bes_crop_debug3_blendopt_fill_override_enabled_f(void) | ||
3762 | { | ||
3763 | return 0x4; | ||
3764 | } | ||
3741 | static inline u32 gr_bes_crop_settings_r(void) | 3765 | static inline u32 gr_bes_crop_settings_r(void) |
3742 | { | 3766 | { |
3743 | return 0x00408958; | 3767 | return 0x00408958; |
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_gr_gp10b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_gr_gp10b.h index 4a87a629..a71f2c2b 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_gr_gp10b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_gr_gp10b.h | |||
@@ -3926,6 +3926,30 @@ static inline u32 gr_bes_crop_debug3_comp_vdc_4to2_disable_m(void) | |||
3926 | { | 3926 | { |
3927 | return 0x1 << 31; | 3927 | return 0x1 << 31; |
3928 | } | 3928 | } |
3929 | static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_m(void) | ||
3930 | { | ||
3931 | return 0x1 << 1; | ||
3932 | } | ||
3933 | static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_disabled_f(void) | ||
3934 | { | ||
3935 | return 0x0; | ||
3936 | } | ||
3937 | static inline u32 gr_bes_crop_debug3_blendopt_read_suppress_enabled_f(void) | ||
3938 | { | ||
3939 | return 0x2; | ||
3940 | } | ||
3941 | static inline u32 gr_bes_crop_debug3_blendopt_fill_override_m(void) | ||
3942 | { | ||
3943 | return 0x1 << 2; | ||
3944 | } | ||
3945 | static inline u32 gr_bes_crop_debug3_blendopt_fill_override_disabled_f(void) | ||
3946 | { | ||
3947 | return 0x0; | ||
3948 | } | ||
3949 | static inline u32 gr_bes_crop_debug3_blendopt_fill_override_enabled_f(void) | ||
3950 | { | ||
3951 | return 0x4; | ||
3952 | } | ||
3929 | static inline u32 gr_bes_crop_settings_r(void) | 3953 | static inline u32 gr_bes_crop_settings_r(void) |
3930 | { | 3954 | { |
3931 | return 0x00408958; | 3955 | return 0x00408958; |