diff options
author | Chris Michael <cp.michael@samsung.com> | 2017-04-27 09:09:46 -0400 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2017-05-04 16:51:18 -0500 |
commit | ebbf83885ff769964193b10ca050334c38663b77 (patch) | |
tree | b01b4ae62ffe56f4fcc4e09e94511c37b3bda46f | |
parent | 04fe28b2d0da618a4ad68bee5aaff013434b4fae (diff) | |
download | efl-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.h | 6 | ||||
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_device.c | 165 | ||||
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_private.h | 7 |
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; }; |