Lines Matching refs:dev

43 			   DRM_STRUCTPROC *p, struct drm_device *dev);
45 static int drm_setup(struct drm_device * dev) in drm_setup() argument
50 if (dev->driver->firstopen) { in drm_setup()
51 ret = dev->driver->firstopen(dev); in drm_setup()
56 atomic_set(&dev->ioctl_count, 0); in drm_setup()
57 atomic_set(&dev->vma_count, 0); in drm_setup()
59 if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) && in drm_setup()
60 !drm_core_check_feature(dev, DRIVER_MODESET)) { in drm_setup()
61 dev->buf_use = 0; in drm_setup()
62 atomic_set(&dev->buf_alloc, 0); in drm_setup()
64 i = drm_dma_setup(dev); in drm_setup()
74 for (i = 0; i < ARRAY_SIZE(dev->counts); i++) in drm_setup()
75 atomic_set(&dev->counts[i], 0); in drm_setup()
78 dev->sigdata.lock = NULL; in drm_setup()
80 dev->context_flag = 0; in drm_setup()
81 dev->interrupt_flag = 0; in drm_setup()
82 dev->dma_flag = 0; in drm_setup()
83 dev->last_context = 0; in drm_setup()
84 dev->last_switch = 0; in drm_setup()
85 dev->last_checked = 0; in drm_setup()
86 DRM_INIT_WAITQUEUE(&dev->context_wait); in drm_setup()
87 dev->if_version = 0; in drm_setup()
90 dev->ctx_start = 0; in drm_setup()
91 dev->lck_start = 0; in drm_setup()
93 dev->buf_async = NULL; in drm_setup()
94 DRM_INIT_WAITQUEUE(&dev->buf_readers); in drm_setup()
95 DRM_INIT_WAITQUEUE(&dev->buf_writers); in drm_setup()
124 struct drm_device *dev = NULL; in drm_open() local
133 if (!(dev = minor->dev)) in drm_open()
142 if (!dev->open_count++) in drm_open()
145 retcode = drm_open_helper(kdev, flags, fmt, p, dev); in drm_open()
150 atomic_inc(&dev->counts[_DRM_STAT_OPENS]); in drm_open()
152 retcode = drm_setup(dev); in drm_open()
161 device_unbusy(dev->dev); in drm_open()
163 dev->open_count--; in drm_open()
181 DRM_STRUCTPROC *p, struct drm_device *dev) in drm_open_helper() argument
188 if (dev->switch_power_state != DRM_SWITCH_POWER_ON) in drm_open_helper()
210 if (dev->driver->driver_features & DRIVER_GEM) in drm_open_helper()
211 drm_gem_open(dev, priv); in drm_open_helper()
214 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
218 if (dev->driver->open) { in drm_open_helper()
219 ret = dev->driver->open(dev, priv); in drm_open_helper()
226 DRM_LOCK(dev); in drm_open_helper()
231 DRM_UNLOCK(dev); in drm_open_helper()
242 DRM_UNLOCK(dev); in drm_open_helper()
243 if (dev->driver->master_create) { in drm_open_helper()
244 ret = dev->driver->master_create(dev, priv->master); in drm_open_helper()
246 DRM_LOCK(dev); in drm_open_helper()
250 DRM_UNLOCK(dev); in drm_open_helper()
254 DRM_LOCK(dev); in drm_open_helper()
255 if (dev->driver->master_set) { in drm_open_helper()
256 ret = dev->driver->master_set(dev, priv, true); in drm_open_helper()
261 DRM_UNLOCK(dev); in drm_open_helper()
265 DRM_UNLOCK(dev); in drm_open_helper()
269 DRM_UNLOCK(dev); in drm_open_helper()
272 DRM_LOCK(dev); in drm_open_helper()
273 list_add(&priv->lhead, &dev->filelist); in drm_open_helper()
274 DRM_UNLOCK(dev); in drm_open_helper()
277 device_busy(dev->dev); in drm_open_helper()
290 static void drm_master_release(struct drm_device *dev, struct drm_file *file_priv) in drm_master_release() argument
293 if (drm_i_have_hw_lock(dev, file_priv)) { in drm_master_release()
303 struct drm_device *dev = file_priv->minor->dev; in drm_events_release() local
308 DRM_SPINLOCK_IRQSAVE(&dev->event_lock, flags); in drm_events_release()
311 list_for_each_entry_safe(v, vt, &dev->vblank_event_list, base.link) in drm_events_release()
314 drm_vblank_put(dev, v->pipe); in drm_events_release()
322 DRM_SPINUNLOCK_IRQRESTORE(&dev->event_lock, flags); in drm_events_release()
340 struct drm_device *dev = file_priv->minor->dev; in drm_release() local
344 DRM_DEBUG("open_count = %d\n", dev->open_count); in drm_release()
346 if (dev->driver->preclose) in drm_release()
347 dev->driver->preclose(dev, file_priv); in drm_release()
356 dev->open_count); in drm_release()
365 drm_master_release(dev, file_priv); in drm_release()
367 if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) in drm_release()
368 drm_core_reclaim_buffers(dev, file_priv); in drm_release()
374 if (dev->driver->driver_features & DRIVER_MODESET) in drm_release()
377 if (dev->driver->driver_features & DRIVER_GEM) in drm_release()
378 drm_gem_release(dev, file_priv); in drm_release()
381 mutex_lock(&dev->ctxlist_mutex); in drm_release()
382 if (!list_empty(&dev->ctxlist)) { in drm_release()
385 list_for_each_entry_safe(pos, n, &dev->ctxlist, head) { in drm_release()
388 if (dev->driver->context_dtor) in drm_release()
389 dev->driver->context_dtor(dev, in drm_release()
392 drm_ctxbitmap_free(dev, pos->handle); in drm_release()
396 --dev->ctx_count; in drm_release()
400 mutex_unlock(&dev->ctxlist_mutex); in drm_release()
403 DRM_LOCK(dev); in drm_release()
408 list_for_each_entry(temp, &dev->filelist, lhead) { in drm_release()
420 if (dev->sigdata.lock == master->lock.hw_lock) in drm_release()
421 dev->sigdata.lock = NULL; in drm_release()
429 if (dev->driver->master_drop) in drm_release()
430 dev->driver->master_drop(dev, file_priv, true); in drm_release()
439 DRM_UNLOCK(dev); in drm_release()
441 if (dev->driver->postclose) in drm_release()
442 dev->driver->postclose(dev, file_priv); in drm_release()
445 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_release()
455 atomic_inc(&dev->counts[_DRM_STAT_CLOSES]); in drm_release()
457 device_unbusy(dev->dev); in drm_release()
459 if (!--dev->open_count) { in drm_release()
460 if (atomic_read(&dev->ioctl_count)) { in drm_release()
462 atomic_read(&dev->ioctl_count)); in drm_release()
464 drm_lastclose(dev); in drm_release()
502 struct drm_device *dev; in drm_read() local
512 dev = drm_get_device_from_kdev(kdev); in drm_read()
513 mtx_lock(&dev->event_lock); in drm_read()
519 error = msleep(&file_priv->event_space, &dev->event_lock, in drm_read()
526 mtx_unlock(&dev->event_lock); in drm_read()
534 mtx_lock(&dev->event_lock); in drm_read()
538 mtx_unlock(&dev->event_lock); in drm_read()
547 struct drm_device *dev; in drm_event_wakeup() local
550 dev = file_priv->minor->dev; in drm_event_wakeup()
551 mtx_assert(&dev->event_lock, MA_OWNED); in drm_event_wakeup()
561 struct drm_device *dev; in drm_poll() local
570 dev = drm_get_device_from_kdev(kdev); in drm_poll()
573 mtx_lock(&dev->event_lock); in drm_poll()
583 mtx_unlock(&dev->event_lock); in drm_poll()
592 struct drm_device *dev; in drm_mmap_single() local
594 dev = drm_get_device_from_kdev(kdev); in drm_mmap_single()
595 if (dev->drm_ttm_bdev != NULL) { in drm_mmap_single()
596 return (-ttm_bo_mmap_single(dev->drm_ttm_bdev, offset, size, in drm_mmap_single()
598 } else if ((dev->driver->driver_features & DRIVER_GEM) != 0) { in drm_mmap_single()
599 return (-drm_gem_mmap_single(dev, offset, size, obj_res, nprot)); in drm_mmap_single()