summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2017-04-27 09:09:46 -0400
committerDerek Foreman <derekf@osg.samsung.com>2017-05-04 16:51:18 -0500
commitebbf83885ff769964193b10ca050334c38663b77 (patch)
treeb01b4ae62ffe56f4fcc4e09e94511c37b3bda46f
parent04fe28b2d0da618a4ad68bee5aaff013434b4fae (diff)
downloadefl-ebbf83885ff769964193b10ca050334c38663b77.tar.gz
ecore-drm2: Remove newly added atomic API functions
As we need to do atomic commits on a per-output basis, these 2 newly added API functions can go because these functions did one atomic commit for all outputs Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/lib/ecore_drm2/Ecore_Drm2.h6
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_device.c165
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_private.h7
3 files changed, 4 insertions, 174 deletions
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h
index 106c50757d..6f1296d204 100644
--- a/src/lib/ecore_drm2/Ecore_Drm2.h
+++ b/src/lib/ecore_drm2/Ecore_Drm2.h
@@ -370,12 +370,6 @@ EAPI Eina_Bool ecore_drm2_device_vt_set(Ecore_Drm2_Device *device, int vt);
*/
EAPI Eina_Bool ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device);
-/* TODO: doxy */
-EAPI Eina_Bool ecore_drm2_atomic_commit_test(Ecore_Drm2_Device *device);
-
-/* TODO: doxy */
-EAPI Eina_Bool ecore_drm2_atomic_commit(Ecore_Drm2_Device *device);
-
/**
* @defgroup Ecore_Drm2_Output_Group Drm output functions
*
diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c
index 8f26974be9..5ee49038d8 100644
--- a/src/lib/ecore_drm2/ecore_drm2_device.c
+++ b/src/lib/ecore_drm2/ecore_drm2_device.c
@@ -677,14 +677,6 @@ ecore_drm2_device_free(Ecore_Drm2_Device *device)
_drm2_atomic_state_free(device->state);
-#ifdef HAVE_ATOMIC_DRM
- if (_ecore_drm2_use_atomic)
- {
- if (device->atomic_req)
- sym_drmModeAtomicFree(device->atomic_req);
- }
-#endif
-
ecore_event_handler_del(device->active_hdlr);
ecore_event_handler_del(device->device_change_hdlr);
eina_stringshare_del(device->path);
@@ -854,160 +846,3 @@ ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device)
else
return EINA_FALSE;
}
-
-EAPI Eina_Bool
-ecore_drm2_atomic_commit_test(Ecore_Drm2_Device *device)
-{
- Eina_Bool res = EINA_FALSE;
-#ifdef HAVE_ATOMIC_DRM
- int ret = 0;
- Eina_List *l, *ll;
- Ecore_Drm2_Output *output;
- Ecore_Drm2_Plane *plane;
- Ecore_Drm2_Plane_State *pstate;
- Ecore_Drm2_Crtc_State *cstate;
- drmModeAtomicReq *req = NULL;
- uint32_t flags = DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_ATOMIC_ALLOW_MODESET |
- DRM_MODE_ATOMIC_TEST_ONLY;
-#endif
-
- EINA_SAFETY_ON_NULL_RETURN_VAL(device, EINA_FALSE);
- EINA_SAFETY_ON_TRUE_RETURN_VAL((device->fd < 0), EINA_FALSE);
-
-#ifdef HAVE_ATOMIC_DRM
- req = sym_drmModeAtomicAlloc();
- if (!req) return EINA_FALSE;
-
- sym_drmModeAtomicSetCursor(req, 0);
-
- EINA_LIST_FOREACH(device->outputs, l, output)
- {
- cstate = output->crtc_state;
-
- ret =
- sym_drmModeAtomicAddProperty(req, cstate->obj_id, cstate->mode.id,
- cstate->mode.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, cstate->obj_id, cstate->active.id,
- cstate->active.value);
- if (ret < 0) goto err;
-
- EINA_LIST_FOREACH(output->planes, ll, plane)
- {
- pstate = plane->state;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->cid.id, pstate->cid.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->fid.id, pstate->fid.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->sx.id, pstate->sx.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->sy.id, pstate->sy.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->sw.id, pstate->sw.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->sh.id, pstate->sh.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->cx.id, pstate->cx.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->cy.id, pstate->cy.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->cw.id, pstate->cw.value);
- if (ret < 0) goto err;
-
- ret =
- sym_drmModeAtomicAddProperty(req, pstate->obj_id,
- pstate->ch.id, pstate->ch.value);
- if (ret < 0) goto err;
- }
- }
-
- ret =
- sym_drmModeAtomicCommit(device->fd, req, flags, NULL);
- if (ret < 0) ERR("Failed Atomic Commit Test: %m");
- else res = EINA_TRUE;
-
- if (res)
- {
- if (device->atomic_req)
- {
- /* merge this test commit with previous */
- ret = sym_drmModeAtomicMerge(device->atomic_req, req);
- if (ret < 0)
- {
- /* we failed to merge for some reason. */
-
- /* clear any previous request */
- sym_drmModeAtomicFree(device->atomic_req);
-
- /* just use the new request */
- device->atomic_req = req;
- }
- }
- else
- device->atomic_req = req;
- }
-
- return res;
-
-err:
- sym_drmModeAtomicFree(req);
-#endif
-
- return res;
-}
-
-EAPI Eina_Bool
-ecore_drm2_atomic_commit(Ecore_Drm2_Device *device)
-{
-#ifdef HAVE_ATOMIC_DRM
- int res = 0;
- uint32_t flags =
- DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_PAGE_FLIP_EVENT |
- DRM_MODE_ATOMIC_ALLOW_MODESET;
-#endif
-
- EINA_SAFETY_ON_NULL_RETURN_VAL(device, EINA_FALSE);
- EINA_SAFETY_ON_TRUE_RETURN_VAL((device->fd < 0), EINA_FALSE);
-
-#ifdef HAVE_ATOMIC_DRM
- if (!device->atomic_req) return EINA_FALSE;
-
- res =
- sym_drmModeAtomicCommit(device->fd, device->atomic_req, flags, NULL);
- if (res < 0)
- ERR("Failed Atomic Commit Test: %m");
- else
- return EINA_TRUE;
-#endif
-
- return EINA_FALSE;
-}
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index ca92f3cec0..cdd19d5678 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -774,6 +774,10 @@ struct _Ecore_Drm2_Output
Eina_List *plane_states;
Eina_List *planes;
+# ifdef HAVE_ATOMIC_DRM
+ drmModeAtomicReq *atomic_req;
+# endif
+
Eina_Bool connected : 1;
Eina_Bool primary : 1;
Eina_Bool cloned : 1;
@@ -810,9 +814,6 @@ struct _Ecore_Drm2_Device
Ecore_Event_Handler *device_change_hdlr;
Ecore_Drm2_Atomic_State *state;
-# ifdef HAVE_ATOMIC_DRM
- drmModeAtomicReq *atomic_req;
-# endif
Eina_List *outputs;
};