diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2015-02-20 17:09:59 +0100 |
---|---|---|
committer | Philipp Zabel <p.zabel@pengutronix.de> | 2015-04-14 11:48:38 +0200 |
commit | 594ec30073c1ef99a1bd8a20e59b0e10ac9549bb (patch) | |
tree | 81ebb94413951d50a1d1b049d2890a41d766396d | |
parent | c3520f94576f9c53cbf1d13407ef2a5b64f2d09f (diff) | |
download | kmsfbwrap-594ec30073c1ef99a1bd8a20e59b0e10ac9549bb.tar.gz kmsfbwrap-594ec30073c1ef99a1bd8a20e59b0e10ac9549bb.tar.xz |
bgi: make FBIO_WAITFORVSYNC really synchronous
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
-rw-r--r-- | src/bgi.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -75,6 +75,14 @@ static void fbdev_write(fuse_req_t req, const char *buf, size_t size, fb->pos += size; } +static int wait_vblank_sync(struct kms_fb *fb) +{ + union drm_wait_vblank vblank = {}; + vblank.request.type = _DRM_VBLANK_RELATIVE; + vblank.request.sequence = 1; + return ioctl(drmfd, DRM_IOCTL_WAIT_VBLANK, &vblank); +} + static int wait_vblank(struct kms_fb *fb) { char buffer[1024]; @@ -319,7 +327,7 @@ static void fbdev_ioctl(fuse_req_t req, int cmd, void *arg, break; case FBIO_WAITFORVSYNC: if (fb->vsync.e != NEVER) - wait_vblank(fb); + wait_vblank_sync(fb); fuse_reply_ioctl(req, 0, NULL, 0); break; case FBIOGET_FSCREENINFO: |