[PATCH xf86-video-ati 11/21] Refactor drmmode_output_set_tear_free helper

Michel Dänzer michel at daenzer.net
Wed Jul 11 17:27:56 UTC 2018


From: Michel Dänzer <michel.daenzer at amd.com>

Preparation for the following fix, no functional change intended.

(Ported from amdgpu commit fa30f4601de7a44edfb4a95873bd648946fd4292)

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/drmmode_display.c | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index df8ef3202..ae605edaf 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1743,6 +1743,22 @@ drmmode_output_create_resources(xf86OutputPtr output)
     }
 }
 
+static void
+drmmode_output_set_tear_free(RADEONEntPtr pRADEONEnt,
+			     drmmode_output_private_ptr drmmode_output,
+			     xf86CrtcPtr crtc, int tear_free)
+{
+	if (drmmode_output->tear_free == tear_free)
+		return;
+
+	drmmode_output->tear_free = tear_free;
+
+	if (crtc) {
+		drmmode_set_mode_major(crtc, &crtc->mode, crtc->rotation,
+				       crtc->x, crtc->y);
+	}
+}
+
 static Bool
 drmmode_output_set_property(xf86OutputPtr output, Atom property,
 		RRPropertyValuePtr value)
@@ -1783,16 +1799,8 @@ drmmode_output_set_property(xf86OutputPtr output, Atom property,
 	    for (j = 0; j < p->mode_prop->count_enums; j++) {
 		if (!strcmp(p->mode_prop->enums[j].name, name)) {
 		    if (i == (drmmode_output->num_props - 1)) {
-			if (drmmode_output->tear_free != j) {
-			    xf86CrtcPtr crtc = output->crtc;
-
-			    drmmode_output->tear_free = j;
-			    if (crtc) {
-				drmmode_set_mode_major(crtc, &crtc->mode,
-						       crtc->rotation,
-						       crtc->x, crtc->y);
-			    }
-			}
+			drmmode_output_set_tear_free(pRADEONEnt, drmmode_output,
+						     output->crtc, j);
 		    } else {
 			drmModeConnectorSetProperty(pRADEONEnt->fd,
 						    drmmode_output->output_id,
-- 
2.18.0



More information about the amd-gfx mailing list