aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Høgsberg2009-11-12 13:06:45 -0600
committerJesse Barnes2009-11-20 16:53:27 -0600
commitb80bcffba6175c53ebe1f1bd02730de0338cc039 (patch)
tree243823e5ed4ee2779ec7bbce4c1a7ce77e9d80cc /libdrm/xf86drmMode.c
parent2577764a5069ca9276e90154915797bcf873adab (diff)
downloadexternal-libdrm-b80bcffba6175c53ebe1f1bd02730de0338cc039.tar.gz
external-libdrm-b80bcffba6175c53ebe1f1bd02730de0338cc039.tar.xz
external-libdrm-b80bcffba6175c53ebe1f1bd02730de0338cc039.zip
libdrm: add libdrm support for page flip ioctl
Diffstat (limited to 'libdrm/xf86drmMode.c')
-rw-r--r--libdrm/xf86drmMode.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c
index 6d85113a..e9516851 100644
--- a/libdrm/xf86drmMode.c
+++ b/libdrm/xf86drmMode.c
@@ -700,7 +700,17 @@ int drmHandleEvent(int fd, drmEventContextPtr evctx)
700 vblank->tv_usec, 700 vblank->tv_usec,
701 U642VOID (vblank->user_data)); 701 U642VOID (vblank->user_data));
702 break; 702 break;
703 703 case DRM_EVENT_FLIP_COMPLETE:
704 if (evctx->version < 1 ||
705 evctx->page_flip_handler == NULL)
706 break;
707 vblank = (struct drm_event_vblank *) e;
708 evctx->page_flip_handler(fd,
709 vblank->sequence,
710 vblank->tv_sec,
711 vblank->tv_usec,
712 U642VOID (vblank->user_data));
713 break;
704 default: 714 default:
705 break; 715 break;
706 } 716 }
@@ -710,3 +720,16 @@ int drmHandleEvent(int fd, drmEventContextPtr evctx)
710 return 0; 720 return 0;
711} 721}
712 722
723int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id,
724 uint32_t flags, void *user_data)
725{
726 struct drm_mode_crtc_page_flip flip;
727
728 flip.fb_id = fb_id;
729 flip.crtc_id = crtc_id;
730 flip.user_data = VOID2U64(user_data);
731 flip.flags = flags;
732 flip.reserved = 0;
733
734 return drmIoctl(fd, DRM_IOCTL_MODE_PAGE_FLIP, &flip);
735}