static void page_flip_cb(void *arg) { struct drm_crtc *crtc = arg; struct omap_crtc *omap_crtc = to_omap_crtc(crtc); struct drm_framebuffer *old_fb = omap_crtc->old_fb; omap_crtc->old_fb = NULL; omap_crtc_mode_set_base(crtc, crtc->x, crtc->y, old_fb); omap_plane_on_endwin(omap_crtc->plane, vblank_cb, crtc); }
static void page_flip_cb(void *arg) { struct drm_crtc *crtc = arg; struct omap_crtc *omap_crtc = to_omap_crtc(crtc); struct drm_framebuffer *old_fb = omap_crtc->old_fb; omap_crtc->old_fb = NULL; omap_crtc_mode_set_base(crtc, crtc->x, crtc->y, old_fb); /* really we'd like to setup the callback atomically w/ setting the * new scanout buffer to avoid getting stuck waiting an extra vblank * cycle.. for now go for correctness and later figure out speed.. */ omap_plane_on_endwin(omap_crtc->plane, vblank_cb, crtc); }