summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2017-06-09 14:20:05 -0400
committerChris Michael <cp.michael@samsung.com>2017-06-09 14:20:05 -0400
commitbbd18510d690cfc02c20e36850a0aea75fd4e4a0 (patch)
tree78b703385c87acc9d2c61e726fd806090f0443e0 /src/lib/ecore_drm2
parentde12621c900177b99fd05684f2e101cea9e628f3 (diff)
ecore-drm2: Remove #ifdef HAVE_ATOMIC_DRM
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>
Diffstat (limited to 'src/lib/ecore_drm2')
-rw-r--r--src/lib/ecore_drm2/ecore_drm2.c4
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_device.c10
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_fb.c55
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_outputs.c16
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_private.h4
5 files changed, 32 insertions, 57 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2.c b/src/lib/ecore_drm2/ecore_drm2.c
index 48d2d2ffc7..a43b11366a 100644
--- a/src/lib/ecore_drm2/ecore_drm2.c
+++ b/src/lib/ecore_drm2/ecore_drm2.c
@@ -17,14 +17,12 @@ int (*sym_drmIoctl)(int fd, unsigned long request, void *arg) = NULL;
17void *(*sym_drmModeObjectGetProperties)(int fd, uint32_t object_id, uint32_t object_type) = NULL; 17void *(*sym_drmModeObjectGetProperties)(int fd, uint32_t object_id, uint32_t object_type) = NULL;
18void (*sym_drmModeFreeObjectProperties)(drmModeObjectPropertiesPtr ptr) = NULL; 18void (*sym_drmModeFreeObjectProperties)(drmModeObjectPropertiesPtr ptr) = NULL;
19int (*sym_drmModeCreatePropertyBlob)(int fd, const void *data, size_t size, uint32_t *id) = NULL; 19int (*sym_drmModeCreatePropertyBlob)(int fd, const void *data, size_t size, uint32_t *id) = NULL;
20# ifdef HAVE_ATOMIC_DRM
21void *(*sym_drmModeAtomicAlloc)(void) = NULL; 20void *(*sym_drmModeAtomicAlloc)(void) = NULL;
22void (*sym_drmModeAtomicFree)(drmModeAtomicReqPtr req) = NULL; 21void (*sym_drmModeAtomicFree)(drmModeAtomicReqPtr req) = NULL;
23int (*sym_drmModeAtomicAddProperty)(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value) = NULL; 22int (*sym_drmModeAtomicAddProperty)(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value) = NULL;
24int (*sym_drmModeAtomicCommit)(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data) = NULL; 23int (*sym_drmModeAtomicCommit)(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data) = NULL;
25void (*sym_drmModeAtomicSetCursor)(drmModeAtomicReqPtr req, int cursor) = NULL; 24void (*sym_drmModeAtomicSetCursor)(drmModeAtomicReqPtr req, int cursor) = NULL;
26int (*sym_drmModeAtomicMerge)(drmModeAtomicReqPtr base, drmModeAtomicReqPtr augment); 25int (*sym_drmModeAtomicMerge)(drmModeAtomicReqPtr base, drmModeAtomicReqPtr augment);
27# endif
28void *(*sym_drmModeGetEncoder)(int fd, uint32_t encoder_id) = NULL; 26void *(*sym_drmModeGetEncoder)(int fd, uint32_t encoder_id) = NULL;
29void (*sym_drmModeFreeEncoder)(drmModeEncoderPtr ptr) = NULL; 27void (*sym_drmModeFreeEncoder)(drmModeEncoderPtr ptr) = NULL;
30void *(*sym_drmModeGetCrtc)(int fd, uint32_t crtcId) = NULL; 28void *(*sym_drmModeGetCrtc)(int fd, uint32_t crtcId) = NULL;
@@ -96,14 +94,12 @@ _ecore_drm2_link(void)
96 SYM(drm_lib, drmModeObjectGetProperties); 94 SYM(drm_lib, drmModeObjectGetProperties);
97 SYM(drm_lib, drmModeFreeObjectProperties); 95 SYM(drm_lib, drmModeFreeObjectProperties);
98 SYM(drm_lib, drmModeCreatePropertyBlob); 96 SYM(drm_lib, drmModeCreatePropertyBlob);
99#ifdef HAVE_ATOMIC_DRM
100 SYM(drm_lib, drmModeAtomicAlloc); 97 SYM(drm_lib, drmModeAtomicAlloc);
101 SYM(drm_lib, drmModeAtomicFree); 98 SYM(drm_lib, drmModeAtomicFree);
102 SYM(drm_lib, drmModeAtomicAddProperty); 99 SYM(drm_lib, drmModeAtomicAddProperty);
103 SYM(drm_lib, drmModeAtomicCommit); 100 SYM(drm_lib, drmModeAtomicCommit);
104 SYM(drm_lib, drmModeAtomicSetCursor); 101 SYM(drm_lib, drmModeAtomicSetCursor);
105 SYM(drm_lib, drmModeAtomicMerge); 102 SYM(drm_lib, drmModeAtomicMerge);
106#endif
107 SYM(drm_lib, drmModeGetEncoder); 103 SYM(drm_lib, drmModeGetEncoder);
108 SYM(drm_lib, drmModeFreeEncoder); 104 SYM(drm_lib, drmModeFreeEncoder);
109 SYM(drm_lib, drmModeGetCrtc); 105 SYM(drm_lib, drmModeGetCrtc);
diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c
index 9cc8c37046..bc3eca0d0d 100644
--- a/src/lib/ecore_drm2/ecore_drm2_device.c
+++ b/src/lib/ecore_drm2/ecore_drm2_device.c
@@ -4,9 +4,7 @@
4# define DRM_CAP_DUMB_PREFER_SHADOW 0x4 4# define DRM_CAP_DUMB_PREFER_SHADOW 0x4
5#endif 5#endif
6 6
7#ifdef HAVE_ATOMIC_DRM 7#include <sys/utsname.h>
8# include <sys/utsname.h>
9#endif
10 8
11Eina_Bool _ecore_drm2_use_atomic = EINA_TRUE; 9Eina_Bool _ecore_drm2_use_atomic = EINA_TRUE;
12 10
@@ -143,7 +141,6 @@ out:
143 return ret; 141 return ret;
144} 142}
145 143
146#ifdef HAVE_ATOMIC_DRM
147# if 0 144# if 0
148static Eina_Bool 145static Eina_Bool
149_drm2_atomic_usable(int fd) 146_drm2_atomic_usable(int fd)
@@ -187,7 +184,6 @@ _drm2_atomic_usable(int fd)
187 return ret; 184 return ret;
188} 185}
189# endif 186# endif
190#endif
191 187
192static void 188static void
193_drm2_atomic_state_crtc_fill(Ecore_Drm2_Crtc_State *cstate, int fd) 189_drm2_atomic_state_crtc_fill(Ecore_Drm2_Crtc_State *cstate, int fd)
@@ -614,15 +610,15 @@ ecore_drm2_device_open(Ecore_Drm2_Device *device)
614 DBG("Device Path: %s", device->path); 610 DBG("Device Path: %s", device->path);
615 DBG("Device Fd: %d", device->fd); 611 DBG("Device Fd: %d", device->fd);
616 612
617#ifdef HAVE_ATOMIC_DRM
618# if 0 613# if 0
619 /* check that this system can do atomic */ 614 /* check that this system can do atomic */
620 _ecore_drm2_use_atomic = _drm2_atomic_usable(device->fd); 615 _ecore_drm2_use_atomic = _drm2_atomic_usable(device->fd);
621# endif 616# endif
617
622 if (getenv("ECORE_DRM2_ATOMIC_DISABLE")) 618 if (getenv("ECORE_DRM2_ATOMIC_DISABLE"))
623 _ecore_drm2_use_atomic = EINA_FALSE; 619 _ecore_drm2_use_atomic = EINA_FALSE;
620
624 if (_ecore_drm2_use_atomic) 621 if (_ecore_drm2_use_atomic)
625#endif
626 { 622 {
627 if (sym_drmSetClientCap(device->fd, 623 if (sym_drmSetClientCap(device->fd,
628 DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1) < 0) 624 DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1) < 0)
diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c
index c6683f4d3d..56b397ece8 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -248,11 +248,12 @@ _ecore_drm2_fb_buffer_release(Ecore_Drm2_Output *output, Ecore_Drm2_Output_State
248 if (output->release_cb) output->release_cb(output->release_data, s->fb); 248 if (output->release_cb) output->release_cb(output->release_data, s->fb);
249 _ecore_drm2_fb_deref(s->fb); 249 _ecore_drm2_fb_deref(s->fb);
250 s->fb = NULL; 250 s->fb = NULL;
251#ifdef HAVE_ATOMIC_DRM 251 if (_ecore_drm2_use_atomic)
252 if (s->atomic_req) 252 {
253 sym_drmModeAtomicFree(s->atomic_req); 253 if (s->atomic_req)
254 s->atomic_req = NULL; 254 sym_drmModeAtomicFree(s->atomic_req);
255#endif 255 s->atomic_req = NULL;
256 }
256} 257}
257 258
258EAPI Eina_Bool 259EAPI Eina_Bool
@@ -268,21 +269,22 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
268 output->current.fb = output->pending.fb; 269 output->current.fb = output->pending.fb;
269 output->pending.fb = NULL; 270 output->pending.fb = NULL;
270 271
271#ifdef HAVE_ATOMIC_DRM 272 if (_ecore_drm2_use_atomic)
272 Eina_List *l, *ll; 273 {
273 Ecore_Drm2_Plane *plane; 274 Eina_List *l, *ll;
275 Ecore_Drm2_Plane *plane;
274 276
275 output->current.atomic_req = output->pending.atomic_req; 277 output->current.atomic_req = output->pending.atomic_req;
276 output->pending.atomic_req = NULL; 278 output->pending.atomic_req = NULL;
277 279
278 EINA_LIST_FOREACH_SAFE(output->planes, l, ll, plane) 280 EINA_LIST_FOREACH_SAFE(output->planes, l, ll, plane)
279 { 281 {
280 if (!plane->dead) continue; 282 if (!plane->dead) continue;
281 output->planes = eina_list_remove_list(output->planes, l); 283 output->planes = eina_list_remove_list(output->planes, l);
282 free(plane); 284 free(plane);
285 }
283 } 286 }
284 287
285#endif
286 EINA_LIST_FREE(output->fbs, fb) 288 EINA_LIST_FREE(output->fbs, fb)
287 _ecore_drm2_fb_deref(fb); 289 _ecore_drm2_fb_deref(fb);
288 output->fbs = NULL; 290 output->fbs = NULL;
@@ -293,7 +295,6 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
293Eina_Bool 295Eina_Bool
294_fb_atomic_flip_test(Ecore_Drm2_Output *output) 296_fb_atomic_flip_test(Ecore_Drm2_Output *output)
295{ 297{
296#ifdef HAVE_ATOMIC_DRM
297 int ret = 0; 298 int ret = 0;
298 Eina_List *l; 299 Eina_List *l;
299 Ecore_Drm2_Crtc_State *cstate; 300 Ecore_Drm2_Crtc_State *cstate;
@@ -303,6 +304,8 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output)
303 uint32_t flags = DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_ATOMIC_ALLOW_MODESET | 304 uint32_t flags = DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_ATOMIC_ALLOW_MODESET |
304 DRM_MODE_ATOMIC_TEST_ONLY; 305 DRM_MODE_ATOMIC_TEST_ONLY;
305 306
307 if (!_ecore_drm2_use_atomic) return EINA_FALSE;
308
306 req = sym_drmModeAtomicAlloc(); 309 req = sym_drmModeAtomicAlloc();
307 if (!req) return EINA_FALSE; 310 if (!req) return EINA_FALSE;
308 311
@@ -401,7 +404,6 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output)
401err: 404err:
402 DBG("Failed Atomic Test: %m"); 405 DBG("Failed Atomic Test: %m");
403 sym_drmModeAtomicFree(req); 406 sym_drmModeAtomicFree(req);
404#endif
405 407
406 return EINA_FALSE; 408 return EINA_FALSE;
407} 409}
@@ -409,12 +411,13 @@ err:
409static int 411static int
410_fb_atomic_flip(Ecore_Drm2_Output *output) 412_fb_atomic_flip(Ecore_Drm2_Output *output)
411{ 413{
412#ifdef HAVE_ATOMIC_DRM
413 int res = 0; 414 int res = 0;
414 uint32_t flags = 415 uint32_t flags =
415 DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_PAGE_FLIP_EVENT | 416 DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_PAGE_FLIP_EVENT |
416 DRM_MODE_ATOMIC_ALLOW_MODESET; 417 DRM_MODE_ATOMIC_ALLOW_MODESET;
417 418
419 if (!_ecore_drm2_use_atomic) return -1;
420
418 /* If we have no req yet, we're flipping to current state. 421 /* If we have no req yet, we're flipping to current state.
419 * rebuild the current state in the prep state */ 422 * rebuild the current state in the prep state */
420 if (!output->prep.atomic_req) _fb_atomic_flip_test(output); 423 if (!output->prep.atomic_req) _fb_atomic_flip_test(output);
@@ -433,9 +436,6 @@ _fb_atomic_flip(Ecore_Drm2_Output *output)
433 } 436 }
434 437
435 return 0; 438 return 0;
436#endif
437
438 return -1;
439} 439}
440 440
441static int 441static int
@@ -578,10 +578,13 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output)
578 } 578 }
579 output->pending.fb = output->prep.fb; 579 output->pending.fb = output->prep.fb;
580 output->prep.fb = NULL; 580 output->prep.fb = NULL;
581#ifdef HAVE_ATOMIC_DRM 581
582 output->pending.atomic_req = output->prep.atomic_req; 582 if (_ecore_drm2_use_atomic)
583 output->prep.atomic_req = NULL; 583 {
584#endif 584 output->pending.atomic_req = output->prep.atomic_req;
585 output->prep.atomic_req = NULL;
586 }
587
585 return 0; 588 return 0;
586} 589}
587 590
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index e760c02d74..89a6767133 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -193,7 +193,6 @@ _output_edid_parse(Ecore_Drm2_Output *output, const uint8_t *data, size_t len)
193 return 0; 193 return 0;
194} 194}
195 195
196//#ifdef HAVE_ATOMIC_DRM
197static void 196static void
198_output_edid_atomic_find(Ecore_Drm2_Output *output) 197_output_edid_atomic_find(Ecore_Drm2_Output *output)
199{ 198{
@@ -213,7 +212,6 @@ _output_edid_atomic_find(Ecore_Drm2_Output *output)
213 eina_stringshare_replace(&output->serial, output->edid.serial); 212 eina_stringshare_replace(&output->serial, output->edid.serial);
214 } 213 }
215} 214}
216//#endif
217 215
218static void 216static void
219_output_edid_find(Ecore_Drm2_Output *output, const drmModeConnector *conn) 217_output_edid_find(Ecore_Drm2_Output *output, const drmModeConnector *conn)
@@ -576,7 +574,6 @@ _output_matrix_update(Ecore_Drm2_Output *output)
576 eina_matrix4_inverse(&output->inverse, &output->matrix); 574 eina_matrix4_inverse(&output->inverse, &output->matrix);
577} 575}
578 576
579//#ifdef HAVE_ATOMIC_DRM
580static Ecore_Drm2_Crtc_State * 577static Ecore_Drm2_Crtc_State *
581_atomic_state_crtc_duplicate(Ecore_Drm2_Crtc_State *state) 578_atomic_state_crtc_duplicate(Ecore_Drm2_Crtc_State *state)
582{ 579{
@@ -673,7 +670,6 @@ _output_plane_states_get(Ecore_Drm2_Atomic_State *state, unsigned int crtc_id, i
673 670
674 return states; 671 return states;
675} 672}
676//#endif
677 673
678static Eina_Bool 674static Eina_Bool
679_output_create(Ecore_Drm2_Device *dev, const drmModeRes *res, const drmModeConnector *conn, int x, int y, int *w, Eina_Bool cloned) 675_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
756 752
757 _output_modes_create(dev, output, conn); 753 _output_modes_create(dev, output, conn);
758 754
759#ifdef HAVE_ATOMIC_DRM
760 if (_ecore_drm2_use_atomic) 755 if (_ecore_drm2_use_atomic)
761 _output_edid_atomic_find(output); 756 _output_edid_atomic_find(output);
762 else 757 else
763#endif
764 _output_edid_find(output, conn); 758 _output_edid_find(output, conn);
765 759
766 if (output->connected) output->enabled = EINA_TRUE; 760 if (output->connected) output->enabled = EINA_TRUE;
@@ -887,13 +881,11 @@ _output_destroy(Ecore_Drm2_Device *dev, Ecore_Drm2_Output *output)
887 Ecore_Drm2_Plane *plane; 881 Ecore_Drm2_Plane *plane;
888 Ecore_Drm2_Plane_State *pstate; 882 Ecore_Drm2_Plane_State *pstate;
889 883
890#ifdef HAVE_ATOMIC_DRM
891 if (_ecore_drm2_use_atomic) 884 if (_ecore_drm2_use_atomic)
892 { 885 {
893 if (output->prep.atomic_req) 886 if (output->prep.atomic_req)
894 sym_drmModeAtomicFree(output->prep.atomic_req); 887 sym_drmModeAtomicFree(output->prep.atomic_req);
895 } 888 }
896#endif
897 889
898 if (_ecore_drm2_use_atomic) 890 if (_ecore_drm2_use_atomic)
899 { 891 {
@@ -1055,11 +1047,9 @@ ecore_drm2_output_edid_get(Ecore_Drm2_Output *output)
1055 1047
1056 EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL); 1048 EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL);
1057 1049
1058#ifdef HAVE_ATOMIC_DRM
1059 if (_ecore_drm2_use_atomic) 1050 if (_ecore_drm2_use_atomic)
1060 blob = output->conn_state->edid.data; 1051 blob = output->conn_state->edid.data;
1061 else 1052 else
1062#endif
1063 { 1053 {
1064 EINA_SAFETY_ON_NULL_RETURN_VAL(output->edid.blob, NULL); 1054 EINA_SAFETY_ON_NULL_RETURN_VAL(output->edid.blob, NULL);
1065 blob = output->edid.blob; 1055 blob = output->edid.blob;
@@ -1266,7 +1256,6 @@ ecore_drm2_output_mode_info_get(Ecore_Drm2_Output_Mode *mode, int *w, int *h, un
1266 if (flags) *flags = mode->flags; 1256 if (flags) *flags = mode->flags;
1267} 1257}
1268 1258
1269#ifdef HAVE_ATOMIC_DRM
1270static Eina_Bool 1259static Eina_Bool
1271_output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode) 1260_output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode)
1272{ 1261{
@@ -1337,7 +1326,6 @@ err:
1337 sym_drmModeAtomicFree(req); 1326 sym_drmModeAtomicFree(req);
1338 return ret; 1327 return ret;
1339} 1328}
1340#endif
1341 1329
1342EAPI Eina_Bool 1330EAPI Eina_Bool
1343ecore_drm2_output_mode_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode, int x, int y) 1331ecore_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
1351 output->y = y; 1339 output->y = y;
1352 output->current_mode = mode; 1340 output->current_mode = mode;
1353 1341
1354#ifdef HAVE_ATOMIC_DRM
1355 if (_ecore_drm2_use_atomic) 1342 if (_ecore_drm2_use_atomic)
1356 ret = _output_mode_atomic_set(output, mode); 1343 ret = _output_mode_atomic_set(output, mode);
1357 else 1344 else
1358#endif
1359 { 1345 {
1360 if (mode) 1346 if (mode)
1361 { 1347 {
@@ -1553,7 +1539,6 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation)
1553 1539
1554 EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE); 1540 EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
1555 1541
1556#ifdef HAVE_ATOMIC_DRM
1557 if (_ecore_drm2_use_atomic) 1542 if (_ecore_drm2_use_atomic)
1558 { 1543 {
1559 Eina_List *l; 1544 Eina_List *l;
@@ -1596,7 +1581,6 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation)
1596err: 1581err:
1597 sym_drmModeAtomicFree(req); 1582 sym_drmModeAtomicFree(req);
1598 } 1583 }
1599#endif
1600 1584
1601 return ret; 1585 return ret;
1602} 1586}
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 55b6fef424..6270b2d7a4 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -192,9 +192,7 @@ struct _Ecore_Drm2_Output_Mode
192typedef struct _Ecore_Drm2_Output_State 192typedef struct _Ecore_Drm2_Output_State
193{ 193{
194 Ecore_Drm2_Fb *fb; 194 Ecore_Drm2_Fb *fb;
195# ifdef HAVE_ATOMIC_DRM
196 drmModeAtomicReq *atomic_req; 195 drmModeAtomicReq *atomic_req;
197# endif
198} Ecore_Drm2_Output_State; 196} Ecore_Drm2_Output_State;
199 197
200struct _Ecore_Drm2_Output 198struct _Ecore_Drm2_Output
@@ -314,14 +312,12 @@ extern int (*sym_drmIoctl)(int fd, unsigned long request, void *arg);
314extern void *(*sym_drmModeObjectGetProperties)(int fd, uint32_t object_id, uint32_t object_type); 312extern void *(*sym_drmModeObjectGetProperties)(int fd, uint32_t object_id, uint32_t object_type);
315extern void (*sym_drmModeFreeObjectProperties)(drmModeObjectPropertiesPtr ptr); 313extern void (*sym_drmModeFreeObjectProperties)(drmModeObjectPropertiesPtr ptr);
316extern int (*sym_drmModeCreatePropertyBlob)(int fd, const void *data, size_t size, uint32_t *id); 314extern int (*sym_drmModeCreatePropertyBlob)(int fd, const void *data, size_t size, uint32_t *id);
317# ifdef HAVE_ATOMIC_DRM
318extern void *(*sym_drmModeAtomicAlloc)(void); 315extern void *(*sym_drmModeAtomicAlloc)(void);
319extern void (*sym_drmModeAtomicFree)(drmModeAtomicReqPtr req); 316extern void (*sym_drmModeAtomicFree)(drmModeAtomicReqPtr req);
320extern int (*sym_drmModeAtomicAddProperty)(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value); 317extern int (*sym_drmModeAtomicAddProperty)(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value);
321extern int (*sym_drmModeAtomicCommit)(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data); 318extern int (*sym_drmModeAtomicCommit)(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data);
322extern void (*sym_drmModeAtomicSetCursor)(drmModeAtomicReqPtr req, int cursor); 319extern void (*sym_drmModeAtomicSetCursor)(drmModeAtomicReqPtr req, int cursor);
323extern int (*sym_drmModeAtomicMerge)(drmModeAtomicReqPtr base, drmModeAtomicReqPtr augment); 320extern int (*sym_drmModeAtomicMerge)(drmModeAtomicReqPtr base, drmModeAtomicReqPtr augment);
324# endif
325extern void *(*sym_drmModeGetEncoder)(int fd, uint32_t encoder_id); 321extern void *(*sym_drmModeGetEncoder)(int fd, uint32_t encoder_id);
326extern void (*sym_drmModeFreeEncoder)(drmModeEncoderPtr ptr); 322extern void (*sym_drmModeFreeEncoder)(drmModeEncoderPtr ptr);
327extern void *(*sym_drmModeGetCrtc)(int fd, uint32_t crtcId); 323extern void *(*sym_drmModeGetCrtc)(int fd, uint32_t crtcId);