Lines Matching defs:crtc

171 	/* Zero per-crtc vblank stuff */
322 drm_vblank_count(struct drm_device *dev, int crtc)
324 return (atomic_read(&dev->_vblank_count[crtc]));
327 static void drm_update_vblank_count(struct drm_device *dev, int crtc)
337 cur_vblank = dev->driver->get_vblank_counter(dev, crtc);
338 diff = cur_vblank - dev->last_vblank[crtc];
339 if (cur_vblank < dev->last_vblank[crtc]) {
342 crtc, dev->last_vblank[crtc], cur_vblank, diff);
345 atomic_add(diff, &dev->_vblank_count[crtc]);
351 drm_vblank_get(struct drm_device *dev, int crtc)
363 atomic_add(1, &dev->vblank_refcount[crtc]);
364 if (dev->vblank_refcount[crtc] == 1 &&
365 atomic_read(&dev->vblank_enabled[crtc]) == 0) {
366 ret = dev->driver->enable_vblank(dev, crtc);
368 atomic_dec(&dev->vblank_refcount[crtc]);
370 atomic_set(&dev->vblank_enabled[crtc], 1);
371 drm_update_vblank_count(dev, crtc);
380 drm_vblank_put(struct drm_device *dev, int crtc)
384 atomic_dec(&dev->vblank_refcount[crtc]);
386 if (dev->vblank_refcount[crtc] == 0)
409 int crtc, ret = 0;
418 crtc = modeset.crtc;
419 if (crtc >= dev->num_crtcs) {
433 if (!dev->vblank_inmodeset[crtc]) {
434 dev->vblank_inmodeset[crtc] = 1;
435 ret = drm_vblank_get(dev, crtc);
439 if (dev->vblank_inmodeset[crtc]) {
442 dev->vblank_inmodeset[crtc] = 0;
444 drm_vblank_put(dev, crtc);
462 int ret, flags, crtc;
493 crtc = flags & _DRM_VBLANK_SECONDARY ? 1 : 0;
494 if (crtc >= dev->num_crtcs) {
498 ret = drm_vblank_get(dev, crtc);
503 sequence = drm_vblank_count(dev, crtc);
533 DRM_WAIT_ON(ret, &dev->vbl_queues[crtc], 3 * DRM_HZ,
534 (((drm_vblank_count(dev, crtc)
542 vblwait.reply.sequence = drm_vblank_count(dev, crtc);
564 drm_vblank_put(dev, crtc);
577 drm_handle_vblank(struct drm_device *dev, int crtc)
579 atomic_inc(&dev->_vblank_count[crtc]);
580 DRM_WAKEUP(&dev->vbl_queues[crtc]);