Lines Matching refs:vblank
47 ((dev)->vblank[pipe].time[(count) % DRM_VBLANKTIME_RBSIZE])
81 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in store_vblank() local
86 vblank->last = last; in store_vblank()
91 tslot = vblank->count + vblank_count_inc; in store_vblank()
103 vblank->count += vblank_count_inc; in store_vblank()
174 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_update_vblank_count() local
179 int framedur_ns = vblank->framedur_ns; in drm_update_vblank_count()
200 diff = (cur_vblank - vblank->last) & dev->max_vblank_count; in drm_update_vblank_count()
205 t_old = &vblanktimestamp(dev, pipe, vblank->count); in drm_update_vblank_count()
233 if (diff > 1 && (vblank->inmodeset & 0x2)) { in drm_update_vblank_count()
273 if ((diff > 1) && (atomic_read(&vblank->refcount) > 1 || in drm_update_vblank_count()
277 atomic_read(&vblank->refcount), in drm_update_vblank_count()
284 pipe, vblank->count, diff, cur_vblank, vblank->last); in drm_update_vblank_count()
287 WARN_ON_ONCE(cur_vblank != vblank->last); in drm_update_vblank_count()
311 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in vblank_disable_and_save() local
325 if (vblank->enabled) { in vblank_disable_and_save()
327 vblank->enabled = false; in vblank_disable_and_save()
343 struct drm_vblank_crtc *vblank = (void *)arg; in vblank_disable_fn() local
344 struct drm_device *dev = vblank->dev; in vblank_disable_fn()
345 unsigned int pipe = vblank->pipe; in vblank_disable_fn()
352 if (atomic_read(&vblank->refcount) == 0 && vblank->enabled) { in vblank_disable_fn()
374 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_cleanup() local
376 WARN_ON(vblank->enabled && in drm_vblank_cleanup()
379 del_timer_sync(&vblank->disable_timer); in drm_vblank_cleanup()
382 kfree(dev->vblank); in drm_vblank_cleanup()
408 dev->vblank = kcalloc(num_crtcs, sizeof(*dev->vblank), GFP_KERNEL); in drm_vblank_init()
409 if (!dev->vblank) in drm_vblank_init()
413 struct drm_vblank_crtc *vblank = &dev->vblank[i]; in drm_vblank_init() local
415 vblank->dev = dev; in drm_vblank_init()
416 vblank->pipe = i; in drm_vblank_init()
417 init_waitqueue_head(&vblank->queue); in drm_vblank_init()
418 setup_timer(&vblank->disable_timer, vblank_disable_fn, in drm_vblank_init()
419 (unsigned long)vblank); in drm_vblank_init()
581 struct drm_vblank_crtc *vblank = &dev->vblank[i]; in drm_irq_uninstall() local
583 if (!vblank->enabled) in drm_irq_uninstall()
589 wake_up(&vblank->queue); in drm_irq_uninstall()
679 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_calc_timestamping_constants() local
710 vblank->linedur_ns = linedur_ns; in drm_calc_timestamping_constants()
711 vblank->framedur_ns = framedur_ns; in drm_calc_timestamping_constants()
948 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_count() local
953 return vblank->count; in drm_vblank_count()
993 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_count_and_time() local
1006 cur_vblank = vblank->count; in drm_vblank_count_and_time()
1010 } while (cur_vblank != vblank->count && --count > 0); in drm_vblank_count_and_time()
1161 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_enable() local
1168 if (!vblank->enabled) { in drm_vblank_enable()
1179 atomic_dec(&vblank->refcount); in drm_vblank_enable()
1181 vblank->enabled = true; in drm_vblank_enable()
1206 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_get() local
1218 if (atomic_add_return(1, &vblank->refcount) == 1) { in drm_vblank_get()
1221 if (!vblank->enabled) { in drm_vblank_get()
1222 atomic_dec(&vblank->refcount); in drm_vblank_get()
1262 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_put() local
1267 if (WARN_ON(atomic_read(&vblank->refcount) == 0)) in drm_vblank_put()
1271 if (atomic_dec_and_test(&vblank->refcount)) { in drm_vblank_put()
1275 vblank_disable_fn((unsigned long)vblank); in drm_vblank_put()
1277 mod_timer(&vblank->disable_timer, in drm_vblank_put()
1309 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_wait_one_vblank() local
1322 ret = wait_event_timeout(vblank->queue, in drm_wait_one_vblank()
1362 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_off() local
1375 pipe, vblank->enabled, vblank->inmodeset); in drm_vblank_off()
1378 if (drm_core_check_feature(dev, DRIVER_ATOMIC) || !vblank->inmodeset) in drm_vblank_off()
1381 wake_up(&vblank->queue); in drm_vblank_off()
1387 if (!vblank->inmodeset) { in drm_vblank_off()
1388 atomic_inc(&vblank->refcount); in drm_vblank_off()
1389 vblank->inmodeset = 1; in drm_vblank_off()
1444 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_crtc_vblank_reset() local
1451 if (!vblank->inmodeset) { in drm_crtc_vblank_reset()
1452 atomic_inc(&vblank->refcount); in drm_crtc_vblank_reset()
1453 vblank->inmodeset = 1; in drm_crtc_vblank_reset()
1475 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_on() local
1483 pipe, vblank->enabled, vblank->inmodeset); in drm_vblank_on()
1486 if (vblank->inmodeset) { in drm_vblank_on()
1487 atomic_dec(&vblank->refcount); in drm_vblank_on()
1488 vblank->inmodeset = 0; in drm_vblank_on()
1497 if (atomic_read(&vblank->refcount) != 0 || drm_vblank_offdelay == 0) in drm_vblank_on()
1545 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_pre_modeset() local
1561 if (!vblank->inmodeset) { in drm_vblank_pre_modeset()
1562 vblank->inmodeset = 0x1; in drm_vblank_pre_modeset()
1564 vblank->inmodeset |= 0x2; in drm_vblank_pre_modeset()
1579 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_vblank_post_modeset() local
1589 if (vblank->inmodeset) { in drm_vblank_post_modeset()
1595 if (vblank->inmodeset & 0x2) in drm_vblank_post_modeset()
1598 vblank->inmodeset = 0; in drm_vblank_post_modeset()
1650 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_queue_vblank_event() local
1681 if (!vblank->enabled) { in drm_queue_vblank_event()
1746 struct drm_vblank_crtc *vblank; in drm_wait_vblank() local
1776 vblank = &dev->vblank[pipe]; in drm_wait_vblank()
1810 vblank->last_wait = vblwait->request.sequence; in drm_wait_vblank()
1811 DRM_WAIT_ON(ret, vblank->queue, 3 * HZ, in drm_wait_vblank()
1814 !vblank->enabled || in drm_wait_vblank()
1874 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_handle_vblank() local
1892 if (!vblank->enabled) { in drm_handle_vblank()
1902 wake_up(&vblank->queue); in drm_handle_vblank()