[PATCH xf86-video-amdgpu 2/5] Hook up CRTC color management functions

sunpeng.li at amd.com sunpeng.li at amd.com
Mon Mar 26 20:00:15 UTC 2018


From: "Leo (Sunpeng) Li" <sunpeng.li at amd.com>

The functions insert into the output resource creation, and property
change functions. CRTC destroy is also hooked-up for proper cleanup of
the CRTC property list.

Signed-off-by: Leo (Sunpeng) Li <sunpeng.li at amd.com>
---
 src/drmmode_display.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 23f9ad3..1966fd2 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1336,7 +1336,7 @@ static xf86CrtcFuncsRec drmmode_crtc_funcs = {
 	.shadow_create = drmmode_crtc_shadow_create,
 	.shadow_allocate = drmmode_crtc_shadow_allocate,
 	.shadow_destroy = drmmode_crtc_shadow_destroy,
-	.destroy = NULL,	/* XXX */
+	.destroy = drmmode_crtc_destroy,
 	.set_scanout_pixmap = drmmode_set_scanout_pixmap,
 };
 
@@ -1933,6 +1933,9 @@ static void drmmode_output_create_resources(xf86OutputPtr output)
 			}
 		}
 	}
+
+	if (output->crtc)
+		drmmode_crtc_create_resources(output->crtc, output);
 }
 
 /**
@@ -2009,6 +2012,20 @@ drmmode_output_set_property(xf86OutputPtr output, Atom property,
 	AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(output->scrn);
 	int i;
 
+	if (output->crtc) {
+		int ret;
+		ret = drmmode_crtc_set_property(output->crtc, property, value);
+		if (ret == 0)
+			return TRUE;
+		if (ret < 0) {
+			xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
+				   "Set CRTC mode property failed with %d\n",
+				   ret);
+			return FALSE;
+		}
+		/* Else, continue */
+	}
+
 	for (i = 0; i < drmmode_output->num_props; i++) {
 		drmmode_prop_ptr p = &drmmode_output->props[i];
 
-- 
2.7.4



More information about the amd-gfx mailing list