aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ecore_drm
diff options
context:
space:
mode:
authorDuna Oh <duna.oh@samsung.com>2016-02-15 08:44:55 -0500
committerChris Michael <cpmichael@osg.samsung.com>2016-02-15 08:46:08 -0500
commit5ae5aade0aa291392bfe5f4e57a4cdc99f8fa605 (patch)
treeca4baa3d9fba00f91101ad0f1575b053869a8092 /src/lib/ecore_drm
parentEvas text: set NULL free'd pointers in evas_object_text_free() (diff)
downloadefl-5ae5aade0aa291392bfe5f4e57a4cdc99f8fa605.tar.gz
ecore-drm: Make ecore_drm_output_rotation_set fail properly
When trying to set a rotation on a given output, we would previously always be returning EINA_TRUE. We should be returning EINA_FALSE when the rotation_set fails. @fix Summary: ecore_drm_output_rotation_set should be returning EINA_FALSE when the output doesn't have a plane of requested type. Test Plan: 1. call ecore_drm_output_rotation_set() with ECORE_DRM_PLANE_TYPE_CURSOR 2. If output doesn't have a plane of ECORE_DRM_PLANE_TYPE_CURSOR, the for statement does nothing. But return value is TRUE; Reviewers: raster, stefan_schmidt, gwanglim, devilhorns, zmike Subscribers: input.hacker, cedric, JHyun, ManMower, jpeg Differential Revision: https://phab.enlightenment.org/D3678
Diffstat (limited to 'src/lib/ecore_drm')
-rw-r--r--src/lib/ecore_drm/ecore_drm_output.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/ecore_drm/ecore_drm_output.c b/src/lib/ecore_drm/ecore_drm_output.c
index 1ac8f9a220..9322ab9f40 100644
--- a/src/lib/ecore_drm/ecore_drm_output.c
+++ b/src/lib/ecore_drm/ecore_drm_output.c
@@ -1510,6 +1510,7 @@ ecore_drm_output_rotation_set(Ecore_Drm_Output *output, Ecore_Drm_Plane_Type typ
{
Ecore_Drm_Plane *plane;
Eina_List *l;
+ Eina_Bool ret = EINA_FALSE;
EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
@@ -1522,13 +1523,18 @@ ecore_drm_output_rotation_set(Ecore_Drm_Output *output, Ecore_Drm_Plane_Type typ
return EINA_FALSE;
}
- drmModeObjectSetProperty(output->dev->drm.fd,
- output->primary_plane_id,
- DRM_MODE_OBJECT_PLANE,
- output->rotation_prop_id,
- plane->rotation_map[ffs(rotation)]);
+ if (drmModeObjectSetProperty(output->dev->drm.fd,
+ output->primary_plane_id,
+ DRM_MODE_OBJECT_PLANE,
+ output->rotation_prop_id,
+ plane->rotation_map[ffs(rotation)]) < 0)
+ {
+ WRN("Failed to set Rotation");
+ return EINA_FALSE;
+ }
+ ret = EINA_TRUE;
break;
}
- return EINA_TRUE;
+ return ret;
}