ecore-drm2: Remove #ifdef HAVE_ATOMIC_DRM
authorChris Michael <cp.michael@samsung.com>
Fri, 9 Jun 2017 18:20:05 +0000 (14:20 -0400)
committerChris Michael <cp.michael@samsung.com>
Fri, 9 Jun 2017 18:20:05 +0000 (14:20 -0400)
As we now use static_libs/libdrm for compiling ecore-drm2, we can
remove the atomic #ifdefs as we can run-time check this now.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/ecore_drm2/ecore_drm2.c
src/lib/ecore_drm2/ecore_drm2_device.c
src/lib/ecore_drm2/ecore_drm2_fb.c
src/lib/ecore_drm2/ecore_drm2_outputs.c
src/lib/ecore_drm2/ecore_drm2_private.h

index 48d2d2f..a43b113 100644 (file)
@@ -17,14 +17,12 @@ int (*sym_drmIoctl)(int fd, unsigned long request, void *arg) = NULL;
 void *(*sym_drmModeObjectGetProperties)(int fd, uint32_t object_id, uint32_t object_type) = NULL;
 void (*sym_drmModeFreeObjectProperties)(drmModeObjectPropertiesPtr ptr) = NULL;
 int (*sym_drmModeCreatePropertyBlob)(int fd, const void *data, size_t size, uint32_t *id) = NULL;
-# ifdef HAVE_ATOMIC_DRM
 void *(*sym_drmModeAtomicAlloc)(void) = NULL;
 void (*sym_drmModeAtomicFree)(drmModeAtomicReqPtr req) = NULL;
 int (*sym_drmModeAtomicAddProperty)(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value) = NULL;
 int (*sym_drmModeAtomicCommit)(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data) = NULL;
 void (*sym_drmModeAtomicSetCursor)(drmModeAtomicReqPtr req, int cursor) = NULL;
 int (*sym_drmModeAtomicMerge)(drmModeAtomicReqPtr base, drmModeAtomicReqPtr augment);
-# endif
 void *(*sym_drmModeGetEncoder)(int fd, uint32_t encoder_id) = NULL;
 void (*sym_drmModeFreeEncoder)(drmModeEncoderPtr ptr) = NULL;
 void *(*sym_drmModeGetCrtc)(int fd, uint32_t crtcId) = NULL;
@@ -96,14 +94,12 @@ _ecore_drm2_link(void)
         SYM(drm_lib, drmModeObjectGetProperties);
         SYM(drm_lib, drmModeFreeObjectProperties);
         SYM(drm_lib, drmModeCreatePropertyBlob);
-#ifdef HAVE_ATOMIC_DRM
         SYM(drm_lib, drmModeAtomicAlloc);
         SYM(drm_lib, drmModeAtomicFree);
         SYM(drm_lib, drmModeAtomicAddProperty);
         SYM(drm_lib, drmModeAtomicCommit);
         SYM(drm_lib, drmModeAtomicSetCursor);
         SYM(drm_lib, drmModeAtomicMerge);
-#endif
         SYM(drm_lib, drmModeGetEncoder);
         SYM(drm_lib, drmModeFreeEncoder);
         SYM(drm_lib, drmModeGetCrtc);
index 9cc8c37..bc3eca0 100644 (file)
@@ -4,9 +4,7 @@
 # define DRM_CAP_DUMB_PREFER_SHADOW 0x4
 #endif
 
-#ifdef HAVE_ATOMIC_DRM
-# include <sys/utsname.h>
-#endif
+#include <sys/utsname.h>
 
 Eina_Bool _ecore_drm2_use_atomic = EINA_TRUE;
 
@@ -143,7 +141,6 @@ out:
    return ret;
 }
 
-#ifdef HAVE_ATOMIC_DRM
 # if 0
 static Eina_Bool
 _drm2_atomic_usable(int fd)
@@ -187,7 +184,6 @@ _drm2_atomic_usable(int fd)
    return ret;
 }
 # endif
-#endif
 
 static void
 _drm2_atomic_state_crtc_fill(Ecore_Drm2_Crtc_State *cstate, int fd)
@@ -614,15 +610,15 @@ ecore_drm2_device_open(Ecore_Drm2_Device *device)
    DBG("Device Path: %s", device->path);
    DBG("Device Fd: %d", device->fd);
 
-#ifdef HAVE_ATOMIC_DRM
 # if 0
    /* check that this system can do atomic */
    _ecore_drm2_use_atomic = _drm2_atomic_usable(device->fd);
 # endif
+
    if (getenv("ECORE_DRM2_ATOMIC_DISABLE"))
      _ecore_drm2_use_atomic = EINA_FALSE;
+
    if (_ecore_drm2_use_atomic)
-#endif
      {
         if (sym_drmSetClientCap(device->fd,
                                 DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1) < 0)
index c6683f4..56b397e 100644 (file)
@@ -248,11 +248,12 @@ _ecore_drm2_fb_buffer_release(Ecore_Drm2_Output *output, Ecore_Drm2_Output_State
    if (output->release_cb) output->release_cb(output->release_data, s->fb);
    _ecore_drm2_fb_deref(s->fb);
    s->fb = NULL;
-#ifdef HAVE_ATOMIC_DRM
-   if (s->atomic_req)
-     sym_drmModeAtomicFree(s->atomic_req);
-   s->atomic_req = NULL;
-#endif
+   if (_ecore_drm2_use_atomic)
+     {
+        if (s->atomic_req)
+          sym_drmModeAtomicFree(s->atomic_req);
+        s->atomic_req = NULL;
+     }
 }
 
 EAPI Eina_Bool
@@ -268,21 +269,22 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
    output->current.fb = output->pending.fb;
    output->pending.fb = NULL;
 
-#ifdef HAVE_ATOMIC_DRM
-   Eina_List *l, *ll;
-   Ecore_Drm2_Plane *plane;
+   if (_ecore_drm2_use_atomic)
+     {
+        Eina_List *l, *ll;
+        Ecore_Drm2_Plane *plane;
 
-   output->current.atomic_req = output->pending.atomic_req;
-   output->pending.atomic_req = NULL;
+        output->current.atomic_req = output->pending.atomic_req;
+        output->pending.atomic_req = NULL;
 
-   EINA_LIST_FOREACH_SAFE(output->planes, l, ll, plane)
-     {
-        if (!plane->dead) continue;
-        output->planes = eina_list_remove_list(output->planes, l);
-        free(plane);
+        EINA_LIST_FOREACH_SAFE(output->planes, l, ll, plane)
+          {
+             if (!plane->dead) continue;
+             output->planes = eina_list_remove_list(output->planes, l);
+             free(plane);
+          }
      }
 
-#endif
    EINA_LIST_FREE(output->fbs, fb)
      _ecore_drm2_fb_deref(fb);
    output->fbs = NULL;
@@ -293,7 +295,6 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
 Eina_Bool
 _fb_atomic_flip_test(Ecore_Drm2_Output *output)
 {
-#ifdef HAVE_ATOMIC_DRM
    int ret = 0;
    Eina_List *l;
    Ecore_Drm2_Crtc_State *cstate;
@@ -303,6 +304,8 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output)
    uint32_t flags = DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_ATOMIC_ALLOW_MODESET |
      DRM_MODE_ATOMIC_TEST_ONLY;
 
+   if (!_ecore_drm2_use_atomic) return EINA_FALSE;
+
    req = sym_drmModeAtomicAlloc();
    if (!req) return EINA_FALSE;
 
@@ -401,7 +404,6 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output)
 err:
    DBG("Failed Atomic Test: %m");
    sym_drmModeAtomicFree(req);
-#endif
 
    return EINA_FALSE;
 }
@@ -409,12 +411,13 @@ err:
 static int
 _fb_atomic_flip(Ecore_Drm2_Output *output)
 {
-#ifdef HAVE_ATOMIC_DRM
    int res = 0;
    uint32_t flags =
      DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_PAGE_FLIP_EVENT |
      DRM_MODE_ATOMIC_ALLOW_MODESET;
 
+   if (!_ecore_drm2_use_atomic) return -1;
+
    /* If we have no req yet, we're flipping to current state.
     * rebuild the current state in the prep state */
    if (!output->prep.atomic_req) _fb_atomic_flip_test(output);
@@ -433,9 +436,6 @@ _fb_atomic_flip(Ecore_Drm2_Output *output)
      }
 
    return 0;
-#endif
-
-   return -1;
 }
 
 static int
@@ -578,10 +578,13 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output)
      }
    output->pending.fb = output->prep.fb;
    output->prep.fb = NULL;
-#ifdef HAVE_ATOMIC_DRM
-   output->pending.atomic_req = output->prep.atomic_req;
-   output->prep.atomic_req = NULL;
-#endif
+
+   if (_ecore_drm2_use_atomic)
+     {
+        output->pending.atomic_req = output->prep.atomic_req;
+        output->prep.atomic_req = NULL;
+     }
+
    return 0;
 }
 
index e760c02..89a6767 100644 (file)
@@ -193,7 +193,6 @@ _output_edid_parse(Ecore_Drm2_Output *output, const uint8_t *data, size_t len)
    return 0;
 }
 
-//#ifdef HAVE_ATOMIC_DRM
 static void
 _output_edid_atomic_find(Ecore_Drm2_Output *output)
 {
@@ -213,7 +212,6 @@ _output_edid_atomic_find(Ecore_Drm2_Output *output)
           eina_stringshare_replace(&output->serial, output->edid.serial);
      }
 }
-//#endif
 
 static void
 _output_edid_find(Ecore_Drm2_Output *output, const drmModeConnector *conn)
@@ -576,7 +574,6 @@ _output_matrix_update(Ecore_Drm2_Output *output)
    eina_matrix4_inverse(&output->inverse, &output->matrix);
 }
 
-//#ifdef HAVE_ATOMIC_DRM
 static Ecore_Drm2_Crtc_State *
 _atomic_state_crtc_duplicate(Ecore_Drm2_Crtc_State *state)
 {
@@ -673,7 +670,6 @@ _output_plane_states_get(Ecore_Drm2_Atomic_State *state, unsigned int crtc_id, i
 
    return states;
 }
-//#endif
 
 static Eina_Bool
 _output_create(Ecore_Drm2_Device *dev, const drmModeRes *res, const drmModeConnector *conn, int x, int y, int *w, Eina_Bool cloned)
@@ -756,11 +752,9 @@ _output_create(Ecore_Drm2_Device *dev, const drmModeRes *res, const drmModeConne
 
    _output_modes_create(dev, output, conn);
 
-#ifdef HAVE_ATOMIC_DRM
    if (_ecore_drm2_use_atomic)
      _output_edid_atomic_find(output);
    else
-#endif
      _output_edid_find(output, conn);
 
    if (output->connected) output->enabled = EINA_TRUE;
@@ -887,13 +881,11 @@ _output_destroy(Ecore_Drm2_Device *dev, Ecore_Drm2_Output *output)
    Ecore_Drm2_Plane *plane;
    Ecore_Drm2_Plane_State *pstate;
 
-#ifdef HAVE_ATOMIC_DRM
    if (_ecore_drm2_use_atomic)
      {
         if (output->prep.atomic_req)
           sym_drmModeAtomicFree(output->prep.atomic_req);
      }
-#endif
 
    if (_ecore_drm2_use_atomic)
      {
@@ -1055,11 +1047,9 @@ ecore_drm2_output_edid_get(Ecore_Drm2_Output *output)
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL);
 
-#ifdef HAVE_ATOMIC_DRM
    if (_ecore_drm2_use_atomic)
      blob = output->conn_state->edid.data;
    else
-#endif
      {
         EINA_SAFETY_ON_NULL_RETURN_VAL(output->edid.blob, NULL);
         blob = output->edid.blob;
@@ -1266,7 +1256,6 @@ ecore_drm2_output_mode_info_get(Ecore_Drm2_Output_Mode *mode, int *w, int *h, un
    if (flags) *flags = mode->flags;
 }
 
-#ifdef HAVE_ATOMIC_DRM
 static Eina_Bool
 _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode)
 {
@@ -1337,7 +1326,6 @@ err:
    sym_drmModeAtomicFree(req);
    return ret;
 }
-#endif
 
 EAPI Eina_Bool
 ecore_drm2_output_mode_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode, int x, int y)
@@ -1351,11 +1339,9 @@ ecore_drm2_output_mode_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mo
    output->y = y;
    output->current_mode = mode;
 
-#ifdef HAVE_ATOMIC_DRM
    if (_ecore_drm2_use_atomic)
      ret = _output_mode_atomic_set(output, mode);
    else
-#endif
      {
         if (mode)
           {
@@ -1553,7 +1539,6 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation)
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
 
-#ifdef HAVE_ATOMIC_DRM
    if (_ecore_drm2_use_atomic)
      {
         Eina_List *l;
@@ -1596,7 +1581,6 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation)
 err:
         sym_drmModeAtomicFree(req);
      }
-#endif
 
    return ret;
 }
index 55b6fef..6270b2d 100644 (file)
@@ -192,9 +192,7 @@ struct _Ecore_Drm2_Output_Mode
 typedef struct _Ecore_Drm2_Output_State
 {
    Ecore_Drm2_Fb *fb;
-# ifdef HAVE_ATOMIC_DRM
    drmModeAtomicReq *atomic_req;
-# endif
 } Ecore_Drm2_Output_State;
 
 struct _Ecore_Drm2_Output
@@ -314,14 +312,12 @@ extern int (*sym_drmIoctl)(int fd, unsigned long request, void *arg);
 extern void *(*sym_drmModeObjectGetProperties)(int fd, uint32_t object_id, uint32_t object_type);
 extern void (*sym_drmModeFreeObjectProperties)(drmModeObjectPropertiesPtr ptr);
 extern int (*sym_drmModeCreatePropertyBlob)(int fd, const void *data, size_t size, uint32_t *id);
-# ifdef HAVE_ATOMIC_DRM
 extern void *(*sym_drmModeAtomicAlloc)(void);
 extern void (*sym_drmModeAtomicFree)(drmModeAtomicReqPtr req);
 extern int (*sym_drmModeAtomicAddProperty)(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value);
 extern int (*sym_drmModeAtomicCommit)(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data);
 extern void (*sym_drmModeAtomicSetCursor)(drmModeAtomicReqPtr req, int cursor);
 extern int (*sym_drmModeAtomicMerge)(drmModeAtomicReqPtr base, drmModeAtomicReqPtr augment);
-# endif
 extern void *(*sym_drmModeGetEncoder)(int fd, uint32_t encoder_id);
 extern void (*sym_drmModeFreeEncoder)(drmModeEncoderPtr ptr);
 extern void *(*sym_drmModeGetCrtc)(int fd, uint32_t crtcId);