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.