Lines Matching refs:vblank

47 	((dev)->vblank[crtc].time[(count) % DRM_VBLANKTIME_RBSIZE])
95 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_update_vblank_count() local
118 diff = cur_vblank - vblank->last; in drm_update_vblank_count()
119 if (cur_vblank < vblank->last) { in drm_update_vblank_count()
123 crtc, vblank->last, cur_vblank, diff); in drm_update_vblank_count()
137 tslot = atomic_read(&vblank->count) + diff; in drm_update_vblank_count()
141 atomic_add(diff, &vblank->count); in drm_update_vblank_count()
153 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in vblank_disable_and_save() local
180 if (!vblank->enabled && in vblank_disable_and_save()
192 if (vblank->enabled) { in vblank_disable_and_save()
194 vblank->enabled = false; in vblank_disable_and_save()
210 vblank->last = dev->driver->get_vblank_counter(dev, crtc); in vblank_disable_and_save()
212 } while (vblank->last != dev->driver->get_vblank_counter(dev, crtc) && (--count) && vblrc); in vblank_disable_and_save()
220 vblcount = atomic_read(&vblank->count); in vblank_disable_and_save()
244 atomic_inc(&vblank->count); in vblank_disable_and_save()
253 struct drm_vblank_crtc *vblank = (void *)arg; in vblank_disable_fn() local
254 struct drm_device *dev = vblank->dev; in vblank_disable_fn()
256 int crtc = vblank->crtc; in vblank_disable_fn()
262 if (atomic_read(&vblank->refcount) == 0 && vblank->enabled) { in vblank_disable_fn()
284 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_cleanup() local
286 WARN_ON(vblank->enabled && in drm_vblank_cleanup()
289 del_timer_sync(&vblank->disable_timer); in drm_vblank_cleanup()
292 kfree(dev->vblank); in drm_vblank_cleanup()
317 dev->vblank = kcalloc(num_crtcs, sizeof(*dev->vblank), GFP_KERNEL); in drm_vblank_init()
318 if (!dev->vblank) in drm_vblank_init()
322 struct drm_vblank_crtc *vblank = &dev->vblank[i]; in drm_vblank_init() local
324 vblank->dev = dev; in drm_vblank_init()
325 vblank->crtc = i; in drm_vblank_init()
326 init_waitqueue_head(&vblank->queue); in drm_vblank_init()
327 setup_timer(&vblank->disable_timer, vblank_disable_fn, in drm_vblank_init()
328 (unsigned long)vblank); in drm_vblank_init()
483 struct drm_vblank_crtc *vblank = &dev->vblank[i]; in drm_irq_uninstall() local
485 if (!vblank->enabled) in drm_irq_uninstall()
491 wake_up(&vblank->queue); in drm_irq_uninstall()
850 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_count() local
854 return atomic_read(&vblank->count); in drm_vblank_count()
893 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_count_and_time() local
905 cur_vblank = atomic_read(&vblank->count); in drm_vblank_count_and_time()
908 } while (cur_vblank != atomic_read(&vblank->count)); in drm_vblank_count_and_time()
983 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_enable() local
990 if (!vblank->enabled) { in drm_vblank_enable()
1001 atomic_dec(&vblank->refcount); in drm_vblank_enable()
1003 vblank->enabled = true; in drm_vblank_enable()
1028 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_get() local
1037 if (atomic_add_return(1, &vblank->refcount) == 1) { in drm_vblank_get()
1040 if (!vblank->enabled) { in drm_vblank_get()
1041 atomic_dec(&vblank->refcount); in drm_vblank_get()
1081 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_put() local
1083 if (WARN_ON(atomic_read(&vblank->refcount) == 0)) in drm_vblank_put()
1090 if (atomic_dec_and_test(&vblank->refcount)) { in drm_vblank_put()
1094 vblank_disable_fn((unsigned long)vblank); in drm_vblank_put()
1096 mod_timer(&vblank->disable_timer, in drm_vblank_put()
1137 ret = wait_event_timeout(dev->vblank[crtc].queue, in drm_wait_one_vblank()
1177 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_off() local
1190 wake_up(&vblank->queue); in drm_vblank_off()
1196 if (!vblank->inmodeset) { in drm_vblank_off()
1197 atomic_inc(&vblank->refcount); in drm_vblank_off()
1198 vblank->inmodeset = 1; in drm_vblank_off()
1253 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_crtc_vblank_reset() local
1260 if (!vblank->inmodeset) { in drm_crtc_vblank_reset()
1261 atomic_inc(&vblank->refcount); in drm_crtc_vblank_reset()
1262 vblank->inmodeset = 1; in drm_crtc_vblank_reset()
1284 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_on() local
1292 if (vblank->inmodeset) { in drm_vblank_on()
1293 atomic_dec(&vblank->refcount); in drm_vblank_on()
1294 vblank->inmodeset = 0; in drm_vblank_on()
1304 vblank->last = in drm_vblank_on()
1311 if (atomic_read(&vblank->refcount) != 0 || in drm_vblank_on()
1360 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_pre_modeset() local
1376 if (!vblank->inmodeset) { in drm_vblank_pre_modeset()
1377 vblank->inmodeset = 0x1; in drm_vblank_pre_modeset()
1379 vblank->inmodeset |= 0x2; in drm_vblank_pre_modeset()
1394 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_vblank_post_modeset() local
1401 if (vblank->inmodeset) { in drm_vblank_post_modeset()
1406 if (vblank->inmodeset & 0x2) in drm_vblank_post_modeset()
1409 vblank->inmodeset = 0; in drm_vblank_post_modeset()
1461 struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; in drm_queue_vblank_event() local
1492 if (!vblank->enabled) { in drm_queue_vblank_event()
1557 struct drm_vblank_crtc *vblank; in drm_wait_vblank() local
1587 vblank = &dev->vblank[crtc]; in drm_wait_vblank()
1621 vblank->last_wait = vblwait->request.sequence; in drm_wait_vblank()
1622 DRM_WAIT_ON(ret, vblank->queue, 3 * HZ, in drm_wait_vblank()
1625 !vblank->enabled || in drm_wait_vblank()
1685 struct drm_vblank_crtc *vblank = &dev->vblank[crtc]; in drm_handle_vblank() local
1706 if (!vblank->enabled) { in drm_handle_vblank()
1717 vblcount = atomic_read(&vblank->count); in drm_handle_vblank()
1741 atomic_inc(&vblank->count); in drm_handle_vblank()
1750 wake_up(&vblank->queue); in drm_handle_vblank()