From: "Leo (Sunpeng) Li" <[email protected]>

The conditionals within the for-loop do the same thing, since they're
essentially copied to the configure&change helper.

Signed-off-by: Leo (Sunpeng) Li <[email protected]>
---
 src/drmmode_display.c | 82 ++-------------------------------------------------
 1 file changed, 2 insertions(+), 80 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 9c95abc..f55ba4d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1945,7 +1945,7 @@ static void drmmode_output_create_resources(xf86OutputPtr 
output)
        drmModeConnectorPtr mode_output = drmmode_output->mode_output;
        AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(output->scrn);
        drmModePropertyPtr drmmode_prop, tearfree_prop;
-       int i, j, err;
+       int i, j;
 
        drmmode_output->props =
                calloc(mode_output->count_props + 1, sizeof(drmmode_prop_rec));
@@ -1985,85 +1985,7 @@ static void 
drmmode_output_create_resources(xf86OutputPtr output)
 
        for (i = 0; i < drmmode_output->num_props; i++) {
                drmmode_prop_ptr p = &drmmode_output->props[i];
-               drmmode_prop = p->mode_prop;
-
-               if (drmmode_prop->flags & DRM_MODE_PROP_RANGE) {
-                       INT32 range[2];
-                       INT32 value = p->value;
-
-                       p->num_atoms = 1;
-                       p->atoms = calloc(p->num_atoms, sizeof(Atom));
-                       if (!p->atoms)
-                               continue;
-                       p->atoms[0] =
-                           MakeAtom(drmmode_prop->name,
-                                    strlen(drmmode_prop->name), TRUE);
-                       range[0] = drmmode_prop->values[0];
-                       range[1] = drmmode_prop->values[1];
-                       err =
-                           RRConfigureOutputProperty(output->randr_output,
-                                                     p->atoms[0], FALSE, TRUE,
-                                                     drmmode_prop->flags &
-                                                     DRM_MODE_PROP_IMMUTABLE ?
-                                                     TRUE : FALSE, 2, range);
-                       if (err != 0) {
-                               xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-                                          "RRConfigureOutputProperty error, 
%d\n",
-                                          err);
-                       }
-                       err =
-                           RRChangeOutputProperty(output->randr_output,
-                                                  p->atoms[0], XA_INTEGER, 32,
-                                                  PropModeReplace, 1, &value,
-                                                  FALSE, TRUE);
-                       if (err != 0) {
-                               xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-                                          "RRChangeOutputProperty error, %d\n",
-                                          err);
-                       }
-               } else if (drmmode_prop->flags & DRM_MODE_PROP_ENUM) {
-                       p->num_atoms = drmmode_prop->count_enums + 1;
-                       p->atoms = calloc(p->num_atoms, sizeof(Atom));
-                       if (!p->atoms)
-                               continue;
-                       p->atoms[0] =
-                           MakeAtom(drmmode_prop->name,
-                                    strlen(drmmode_prop->name), TRUE);
-                       for (j = 1; j <= drmmode_prop->count_enums; j++) {
-                               struct drm_mode_property_enum *e =
-                                   &drmmode_prop->enums[j - 1];
-                               p->atoms[j] =
-                                   MakeAtom(e->name, strlen(e->name), TRUE);
-                       }
-                       err =
-                           RRConfigureOutputProperty(output->randr_output,
-                                                     p->atoms[0], FALSE, FALSE,
-                                                     drmmode_prop->flags &
-                                                     DRM_MODE_PROP_IMMUTABLE ?
-                                                     TRUE : FALSE,
-                                                     p->num_atoms - 1,
-                                                     (INT32 *) & p->atoms[1]);
-                       if (err != 0) {
-                               xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-                                          "RRConfigureOutputProperty error, 
%d\n",
-                                          err);
-                       }
-                       for (j = 0; j < drmmode_prop->count_enums; j++)
-                               if (drmmode_prop->enums[j].value == p->value)
-                                       break;
-                       /* there's always a matching value */
-                       err =
-                           RRChangeOutputProperty(output->randr_output,
-                                                  p->atoms[0], XA_ATOM, 32,
-                                                  PropModeReplace, 1,
-                                                  &p->atoms[j + 1], FALSE,
-                                                  TRUE);
-                       if (err != 0) {
-                               xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
-                                          "RRChangeOutputProperty error, %d\n",
-                                          err);
-                       }
-               }
+               __rr_configure_and_change_property (output, p, TRUE);
        }
 
        if (output->crtc)
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to