summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2
diff options
context:
space:
mode:
authorChristopher Michael <cp.michael@samsung.com>2019-01-02 11:05:07 -0500
committerDerek Foreman <derek.foreman.samsung@gmail.com>2019-01-17 09:37:33 -0600
commit8079d6d38a455dc548482353ff739cac82fdfc23 (patch)
tree8b010a20fa147a3a43ceaec34b44e09ae2a671e1 /src/lib/ecore_drm2
parent1b7129cea0d90f76a21bd6b4e40d1528141e087f (diff)
ecore-drm2: Pass output as data to drmModePageFlip and drmModeAtomicCommit
In order to support per-output ticking, the drmModePageFlip and drmModeAtomicCommit functions need to pass the actual Output as data to the pageflip callback so that the pageflip callback function can pass the proper rectangle to ecore_evas_animator_tick Differential Revision: https://phab.enlightenment.org/D7678
Diffstat (limited to 'src/lib/ecore_drm2')
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_fb.c6
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_outputs.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c
index 4e26fd765a..33c0e27570 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -411,7 +411,7 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output)
411 } 411 }
412 412
413 ret = 413 ret =
414 sym_drmModeAtomicCommit(output->fd, req, flags, NULL); 414 sym_drmModeAtomicCommit(output->fd, req, flags, output);
415 if (ret < 0) goto err; 415 if (ret < 0) goto err;
416 416
417 /* clear any previous request */ 417 /* clear any previous request */
@@ -447,7 +447,7 @@ _fb_atomic_flip(Ecore_Drm2_Output *output)
447 447
448 res = 448 res =
449 sym_drmModeAtomicCommit(output->fd, output->prep.atomic_req, flags, 449 sym_drmModeAtomicCommit(output->fd, output->prep.atomic_req, flags,
450 output->user_data); 450 output);
451 if (res < 0) 451 if (res < 0)
452 { 452 {
453 ERR("Failed Atomic Commit: %m"); 453 ERR("Failed Atomic Commit: %m");
@@ -499,7 +499,7 @@ _fb_flip(Ecore_Drm2_Output *output)
499 static Eina_Bool bugged_about_bug = EINA_FALSE; 499 static Eina_Bool bugged_about_bug = EINA_FALSE;
500 repeat = EINA_FALSE; 500 repeat = EINA_FALSE;
501 ret = sym_drmModePageFlip(fb->fd, output->crtc_id, fb->id, 501 ret = sym_drmModePageFlip(fb->fd, output->crtc_id, fb->id,
502 DRM_MODE_PAGE_FLIP_EVENT, output->user_data); 502 DRM_MODE_PAGE_FLIP_EVENT, output);
503 /* Some drivers (RPI - looking at you) are broken and produce 503 /* Some drivers (RPI - looking at you) are broken and produce
504 * flip events before they are ready for another flip, so be 504 * flip events before they are ready for another flip, so be
505 * a little robust in the face of badness and try a few times 505 * a little robust in the face of badness and try a few times
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index e39f26a6da..928a16c32d 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -1291,7 +1291,7 @@ _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode)
1291 } 1291 }
1292 1292
1293 ret = sym_drmModeAtomicCommit(output->fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, 1293 ret = sym_drmModeAtomicCommit(output->fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET,
1294 output->user_data); 1294 output);
1295 if (ret < 0) 1295 if (ret < 0)
1296 { 1296 {
1297 ERR("Failed to commit atomic Mode: %m"); 1297 ERR("Failed to commit atomic Mode: %m");
@@ -1538,7 +1538,7 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation)
1538 if (res < 0) goto err; 1538 if (res < 0) goto err;
1539 1539
1540 res = sym_drmModeAtomicCommit(output->fd, req, flags, 1540 res = sym_drmModeAtomicCommit(output->fd, req, flags,
1541 output->user_data); 1541 output);
1542 if (res < 0) 1542 if (res < 0)
1543 goto err; 1543 goto err;
1544 else 1544 else