Blob Blame History Raw
From: Yongqiang Sun <yongqiang.sun@amd.com>
Date: Mon, 9 Jan 2017 09:42:33 -0500
Subject: drm/amd/display: Pass visible flag into surface programming
Git-commit: 624d7c4708b27be2dc095579394efadd80f090dd
Patch-mainline: v4.15-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166

Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c          |    3 ++-
 drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h          |    3 ++-
 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c |    6 ++++--
 drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h    |    3 ++-
 drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c  |    3 ++-
 drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.h  |    3 ++-
 drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h           |    3 ++-
 7 files changed, 16 insertions(+), 8 deletions(-)

--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
@@ -372,7 +372,8 @@ void dce_mem_input_program_surface_confi
 	union plane_size *plane_size,
 	enum dc_rotation_angle rotation,
 	struct dc_plane_dcc_param *dcc,
-	bool horizontal_mirror)
+	bool horizontal_mirror,
+	bool visible)
 {
 	REG_UPDATE(GRPH_ENABLE, GRPH_ENABLE, 1);
 
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h
@@ -243,7 +243,8 @@ void dce_mem_input_program_surface_confi
 	union plane_size *plane_size,
 	enum dc_rotation_angle rotation,
 	struct dc_plane_dcc_param *dcc,
-	bool horizontal_mirror);
+	bool horizontal_mirror,
+	bool visible);
 
 void dce_mem_input_allocate_dmif(struct mem_input *mi,
 	uint32_t h_total,
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
@@ -1538,7 +1538,8 @@ static void set_plane_config(
 			&surface->public.plane_size,
 			surface->public.rotation,
 			NULL,
-			false);
+			false,
+			pipe_ctx->surface->public.visible);
 
 	if (dc->public.config.gpu_vm_support)
 		mi->funcs->mem_input_program_pte_vm(
@@ -1877,8 +1878,9 @@ static void dce110_program_front_end_for
 			&surface->public.tiling_info,
 			&surface->public.plane_size,
 			surface->public.rotation,
+			NULL,
 			false,
-			false);
+			pipe_ctx->surface->public.visible);
 
 	if (dc->public.config.gpu_vm_support)
 		mi->funcs->mem_input_program_pte_vm(
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h
@@ -105,7 +105,8 @@ bool  dce110_mem_input_program_surface_c
 	union plane_size *plane_size,
 	enum dc_rotation_angle rotation,
 	struct dc_plane_dcc_param *dcc,
-	bool horizontal_mirror);
+	bool horizontal_mirror,
+	bool visible);
 
 /*
  * dce110_mem_input_is_flip_pending
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
@@ -664,7 +664,8 @@ void dce110_mem_input_v_program_surface_
 	union plane_size *plane_size,
 	enum dc_rotation_angle rotation,
 	struct dc_plane_dcc_param *dcc,
-	bool horizotal_mirror)
+	bool horizotal_mirror,
+	bool visible)
 {
 	struct dce110_mem_input *mem_input110 = TO_DCE110_MEM_INPUT(mem_input);
 
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.h
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.h
@@ -89,6 +89,7 @@ bool  dce110_mem_input_v_program_surface
 	enum surface_pixel_format format,
 	union dc_tiling_info *tiling_info,
 	union plane_size *plane_size,
-	enum dc_rotation_angle rotation);
+	enum dc_rotation_angle rotation,
+	bool visible);
 
 #endif
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
@@ -95,7 +95,8 @@ struct mem_input_funcs {
 		union plane_size *plane_size,
 		enum dc_rotation_angle rotation,
 		struct dc_plane_dcc_param *dcc,
-		bool horizontal_mirror);
+		bool horizontal_mirror,
+		bool visible);
 
 	bool (*mem_input_is_flip_pending)(struct mem_input *mem_input);