public inbox for amd-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: <sunpeng.li-5C7GfCeVMHo@public.gmane.org>
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: [PATCH xf86-video-amdgpu 4/5] Enable configure & change helper to handle enums
Date: Mon, 26 Mar 2018 16:00:17 -0400	[thread overview]
Message-ID: <1522094418-9102-5-git-send-email-sunpeng.li@amd.com> (raw)
In-Reply-To: <1522094418-9102-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>

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

Copy code from output_create_resources, insert into configure &
change helper, and rename variables. Some formatting changes as well.
Modify doc-string to reflect change.

Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com>
---
 src/drmmode_display.c | 42 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 45457c4..9c95abc 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1656,8 +1656,7 @@ static Bool drmmode_property_ignore(drmModePropertyPtr prop)
 }
 
 /**
-* Configure and change the given output property through randr. Currently
-* ignores DRM_MODE_PROP_ENU property types. Used as part of create_resources.
+* Configure and change the given output/CRTC property through randr.
 *
 * @output: The output to configure and change the property on.
 * @pmode_prop: The driver-private property object.
@@ -1733,6 +1732,45 @@ static int __rr_configure_and_change_property(xf86OutputPtr output,
 		if (err)
 			goto rrchange_error;
 	}
+	else if (mode_prop->flags & DRM_MODE_PROP_ENUM) {
+		int j;
+
+		pmode_prop->num_atoms = mode_prop->count_enums + 1;
+		pmode_prop->atoms = calloc(pmode_prop->num_atoms, sizeof(Atom));
+		if (!pmode_prop->atoms)
+			return 0;
+
+		pmode_prop->atoms[0] = MakeAtom(mode_prop->name,
+						strlen(mode_prop->name), TRUE);
+
+		for (j = 1; j <= mode_prop->count_enums; j++) {
+			struct drm_mode_property_enum *e =
+						&mode_prop->enums[j - 1];
+			pmode_prop->atoms[j] = MakeAtom(e->name,
+							strlen(e->name),
+							TRUE);
+		}
+		err = RRConfigureOutputProperty(output->randr_output,
+						pmode_prop->atoms[0],
+						FALSE, FALSE,
+						is_immutable,
+						pmode_prop->num_atoms - 1,
+						(INT32 *) &pmode_prop->atoms[1]);
+		if (err != 0)
+			goto rrconfig_error;
+
+		for (j = 0; j < mode_prop->count_enums; j++)
+			if (mode_prop->enums[j].value == pmode_prop->value)
+				break;
+		/* there's always a matching value */
+		err = RRChangeOutputProperty(output->randr_output,
+					     pmode_prop->atoms[0], XA_ATOM, 32,
+					     PropModeReplace, 1,
+					     &pmode_prop->atoms[j + 1], FALSE,
+					     pending);
+		if (err != 0)
+			goto rrchange_error;
+	}
 
 	return 0;
 
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-03-26 20:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-26 20:00 [PATCH xf86-video-amdgpu 0/5] Implementing non-legacy color management sunpeng.li-5C7GfCeVMHo
     [not found] ` <1522094418-9102-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>
2018-03-26 20:00   ` [PATCH xf86-video-amdgpu 1/5] Add functions for changing CRTC color management properties sunpeng.li-5C7GfCeVMHo
     [not found]     ` <1522094418-9102-2-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>
2018-04-09 15:03       ` Michel Dänzer
     [not found]         ` <0f5652b1-82af-23a2-969e-0e47844fef28-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-10 18:02           ` Leo Li
     [not found]             ` <25c493fd-dfa3-1549-6d7c-30790d48acae-5C7GfCeVMHo@public.gmane.org>
2018-04-11  8:39               ` Michel Dänzer
     [not found]                 ` <90b36645-a08a-b36d-2e76-64ad9709b1a8-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-11 21:26                   ` Leo Li
2018-03-26 20:00   ` [PATCH xf86-video-amdgpu 2/5] Hook up CRTC color management functions sunpeng.li-5C7GfCeVMHo
     [not found]     ` <1522094418-9102-3-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>
2018-04-09 15:03       ` Michel Dänzer
     [not found]         ` <01457540-fbc7-b608-4aee-5df18f7a7dde-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-10 18:02           ` Leo Li
     [not found]             ` <8994afe3-812f-432f-27ef-ab5db3513d15-5C7GfCeVMHo@public.gmane.org>
2018-04-11  8:48               ` Michel Dänzer
     [not found]                 ` <ce29def3-b0f5-3c4a-cd3f-ca3c61770f81-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-11 21:26                   ` Leo Li
2018-03-26 20:00   ` [PATCH xf86-video-amdgpu 3/5] Keep CRTC properties consistent sunpeng.li-5C7GfCeVMHo
     [not found]     ` <1522094418-9102-4-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>
2018-04-09 15:03       ` Michel Dänzer
     [not found]         ` <2fbbae9b-c874-7187-9b69-0a929dcaf5cf-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-10 18:02           ` Leo Li
     [not found]             ` <0b884ad3-c193-9eab-ca93-ff0ca0672f1e-5C7GfCeVMHo@public.gmane.org>
2018-04-11  8:39               ` Michel Dänzer
     [not found]                 ` <4cd3224e-fd14-e66f-56bf-b983b8f74bc8-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-11 21:26                   ` Leo Li
     [not found]                     ` <78b780f2-d075-9496-e62a-8f6de989b992-5C7GfCeVMHo@public.gmane.org>
2018-04-12 10:30                       ` Michel Dänzer
     [not found]                         ` <cc580a31-0679-5492-afff-2ff683ca975d-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-12 16:48                           ` Leo Li
     [not found]                             ` <f915a0db-4756-91de-e9dd-336da66060e6-5C7GfCeVMHo@public.gmane.org>
2018-04-13  9:12                               ` Michel Dänzer
2018-03-26 20:00   ` sunpeng.li-5C7GfCeVMHo [this message]
     [not found]     ` <1522094418-9102-5-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>
2018-04-09 15:03       ` [PATCH xf86-video-amdgpu 4/5] Enable configure & change helper to handle enums Michel Dänzer
2018-03-26 20:00   ` [PATCH xf86-video-amdgpu 5/5] Modify output_create_resources to use configure & change helper sunpeng.li-5C7GfCeVMHo
2018-04-09 14:10   ` [PATCH xf86-video-amdgpu 0/5] Implementing non-legacy color management Michel Dänzer
     [not found]     ` <53e9ea09-8b20-70fd-b7ef-c0219d46bdcc-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-04-10 18:02       ` Leo Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1522094418-9102-5-git-send-email-sunpeng.li@amd.com \
    --to=sunpeng.li-5c7gfcevmho@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox