This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch devs/devilhorns/apos
in repository efl.

View the commit online.

commit 55113e46bb93df7b5420e7b3a63afb9c2c8db307
Author: Christopher Michael <devilho...@comcast.net>
AuthorDate: Sat Dec 3 07:57:57 2022 -0500

    ecore_drm2: Add field to store drm property flags
    
    This will allow us to test if a property is immutable so we do not try
    to set a property value on something that cannot be changed. For
    example, some drivers have an immutable zpos on planes so we cannot
    change those.
---
 src/lib/ecore_drm2/ecore_drm2_connectors.c |  4 ++++
 src/lib/ecore_drm2/ecore_drm2_crtcs.c      |  2 ++
 src/lib/ecore_drm2/ecore_drm2_planes.c     | 12 ++++++++++++
 src/lib/ecore_drm2/ecore_drm2_private.h    |  2 +-
 4 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_drm2/ecore_drm2_connectors.c b/src/lib/ecore_drm2/ecore_drm2_connectors.c
index 91b60c544a..7bfe468c19 100644
--- a/src/lib/ecore_drm2/ecore_drm2_connectors.c
+++ b/src/lib/ecore_drm2/ecore_drm2_connectors.c
@@ -74,11 +74,13 @@ _ecore_drm2_connector_state_fill(Ecore_Drm2_Connector *conn)
         if (!strcmp(prop->name, "CRTC_ID"))
           {
              cstate->crtc.id = prop->prop_id;
+             cstate->crtc.flags = prop->flags;
              cstate->crtc.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "DPMS"))
           {
              cstate->dpms.id = prop->prop_id;
+             cstate->dpms.flags = prop->flags;
              cstate->dpms.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "EDID"))
@@ -112,11 +114,13 @@ _ecore_drm2_connector_state_fill(Ecore_Drm2_Connector *conn)
         else if (!strcmp(prop->name, "aspect ratio"))
           {
              cstate->aspect.id = prop->prop_id;
+             cstate->aspect.flags = prop->flags;
              cstate->aspect.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "scaling mode"))
           {
              cstate->scaling.id = prop->prop_id;
+             cstate->scaling.flags = prop->flags;
              cstate->scaling.value = oprops->prop_values[i];
           }
 
diff --git a/src/lib/ecore_drm2/ecore_drm2_crtcs.c b/src/lib/ecore_drm2/ecore_drm2_crtcs.c
index 40a6024bad..c74813e164 100644
--- a/src/lib/ecore_drm2/ecore_drm2_crtcs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_crtcs.c
@@ -98,12 +98,14 @@ _ecore_drm2_crtc_state_fill(Ecore_Drm2_Crtc *crtc)
         else if (!strcmp(prop->name, "ACTIVE"))
           {
              cstate->active.id = prop->prop_id;
+             cstate->active.flags = prop->flags;
              cstate->active.value = oprops->prop_values[i];
           }
         /* TODO: We don't actually use this value yet */
         /* else if (!strcmp(prop->name, "BACKGROUND_COLOR")) */
         /*   { */
         /*      cstate->background.id = prop->prop_id; */
+        /*      cstate->background.flags = prop->flags; */
         /*      cstate->background.value = oprops->prop_values[i]; */
         /*   } */
 
diff --git a/src/lib/ecore_drm2/ecore_drm2_planes.c b/src/lib/ecore_drm2/ecore_drm2_planes.c
index 02adbdbd9c..5d4b15114b 100644
--- a/src/lib/ecore_drm2/ecore_drm2_planes.c
+++ b/src/lib/ecore_drm2/ecore_drm2_planes.c
@@ -85,56 +85,67 @@ _ecore_drm2_plane_state_fill(Ecore_Drm2_Plane *plane)
         if (!strcmp(prop->name, "CRTC_ID"))
           {
              pstate->cid.id = prop->prop_id;
+             pstate->cid.flags = prop->flags;
              pstate->cid.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "FB_ID"))
           {
              pstate->fid.id = prop->prop_id;
+             pstate->fid.flags = prop->flags;
              pstate->fid.value = oprops->prop_values[i];
          }
         else if (!strcmp(prop->name, "CRTC_X"))
           {
              pstate->cx.id = prop->prop_id;
+             pstate->cx.flags = prop->flags;
              pstate->cx.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "CRTC_Y"))
           {
              pstate->cy.id = prop->prop_id;
+             pstate->cy.flags = prop->flags;
              pstate->cy.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "CRTC_W"))
           {
              pstate->cw.id = prop->prop_id;
+             pstate->cw.flags = prop->flags;
              pstate->cw.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "CRTC_H"))
           {
              pstate->ch.id = prop->prop_id;
+             pstate->ch.flags = prop->flags;
              pstate->ch.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "SRC_X"))
           {
              pstate->sx.id = prop->prop_id;
+             pstate->sx.flags = prop->flags;
              pstate->sx.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "SRC_Y"))
           {
              pstate->sy.id = prop->prop_id;
+             pstate->sy.flags = prop->flags;
              pstate->sy.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "SRC_W"))
           {
              pstate->sw.id = prop->prop_id;
+             pstate->sw.flags = prop->flags;
              pstate->sw.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "SRC_H"))
           {
              pstate->sh.id = prop->prop_id;
+             pstate->sh.flags = prop->flags;
              pstate->sh.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "type"))
           {
              pstate->type.id = prop->prop_id;
+             pstate->type.flags = prop->flags;
              pstate->type.value = oprops->prop_values[i];
           }
         else if (!strcmp(prop->name, "rotation"))
@@ -142,6 +153,7 @@ _ecore_drm2_plane_state_fill(Ecore_Drm2_Plane *plane)
              int k = 0;
 
              pstate->rotation.id = prop->prop_id;
+             pstate->rotation.flags = prop->flags;
              pstate->rotation.value = oprops->prop_values[i];
 
              for (k = 0; k < prop->count_enums; k++)
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 1a9ad3f313..22854cc5f2 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -84,7 +84,7 @@ typedef struct _Ecore_Drm2_Atomic_Blob
 
 typedef struct _Ecore_Drm2_Atomic_Property
 {
-   uint32_t id;
+   uint32_t id, flags;
    uint64_t value;
 } Ecore_Drm2_Atomic_Property;
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to