Lines Matching refs:dev
110 static int drm_setup(struct drm_device * dev) in drm_setup() argument
114 if (dev->driver->firstopen && in drm_setup()
115 drm_core_check_feature(dev, DRIVER_LEGACY)) { in drm_setup()
116 ret = dev->driver->firstopen(dev); in drm_setup()
121 ret = drm_legacy_dma_setup(dev); in drm_setup()
153 struct drm_device *dev; in drm_open() local
162 dev = minor->dev; in drm_open()
163 if (!dev->open_count++) in drm_open()
168 filp->f_mapping = dev->anon_inode->i_mapping; in drm_open()
179 retcode = drm_setup(dev); in drm_open()
184 device_busy(dev->dev->bsddev); in drm_open()
189 dev->open_count--; in drm_open()
207 struct drm_device *dev = minor->dev; in drm_close() local
211 DRM_DEBUG("open_count = %d\n", dev->open_count); in drm_close()
213 mutex_lock(&dev->filelist_mutex); in drm_close()
215 mutex_unlock(&dev->filelist_mutex); in drm_close()
217 if (drm_core_check_feature(dev, DRIVER_LEGACY) && in drm_close()
218 dev->driver->preclose) in drm_close()
219 dev->driver->preclose(dev, file_priv); in drm_close()
227 dev, in drm_close()
228 dev->open_count); in drm_close()
230 if (drm_core_check_feature(dev, DRIVER_LEGACY)) in drm_close()
231 drm_legacy_lock_release(dev, filp); in drm_close()
233 if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) in drm_close()
234 drm_legacy_reclaim_buffers(dev, file_priv); in drm_close()
238 if (drm_core_check_feature(dev, DRIVER_MODESET)) { in drm_close()
240 drm_property_destroy_user_blobs(dev, file_priv); in drm_close()
243 if (drm_core_check_feature(dev, DRIVER_SYNCOBJ)) in drm_close()
246 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_close()
247 drm_gem_release(dev, file_priv); in drm_close()
249 drm_legacy_ctxbitmap_flush(dev, file_priv); in drm_close()
254 if (dev->driver->postclose) in drm_close()
255 dev->driver->postclose(dev, file_priv); in drm_close()
257 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_close()
269 if (!--dev->open_count) { in drm_close()
270 drm_lastclose(dev); in drm_close()
272 if (drm_dev_is_unplugged(dev)) in drm_close()
273 drm_put_dev(dev); in drm_close()
310 struct drm_device *dev = minor->dev; in drm_open_helper() local
329 priv->dev = dev; in drm_open_helper()
346 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_open_helper()
347 drm_gem_open(dev, priv); in drm_open_helper()
349 if (drm_core_check_feature(dev, DRIVER_SYNCOBJ)) in drm_open_helper()
352 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
355 if (dev->driver->open) { in drm_open_helper()
357 ret = -dev->driver->open(dev, priv); in drm_open_helper()
363 kdev->si_drv1 = dev; in drm_open_helper()
372 mutex_lock(&dev->filelist_mutex); in drm_open_helper()
373 list_add(&priv->lhead, &dev->filelist); in drm_open_helper()
374 mutex_unlock(&dev->filelist_mutex); in drm_open_helper()
380 if (!dev->hose) { in drm_open_helper()
384 dev->hose = pci_dev->sysdata; in drm_open_helper()
387 if (!dev->hose) { in drm_open_helper()
391 dev->hose = b->sysdata; in drm_open_helper()
399 if (dev->driver->postclose) in drm_open_helper()
400 dev->driver->postclose(dev, priv); in drm_open_helper()
402 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
404 if (drm_core_check_feature(dev, DRIVER_SYNCOBJ)) in drm_open_helper()
406 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_open_helper()
407 drm_gem_release(dev, priv); in drm_open_helper()
416 struct drm_device *dev = file_priv->minor->dev; in drm_events_release() local
420 spin_lock_irqsave(&dev->event_lock, flags); in drm_events_release()
435 spin_unlock_irqrestore(&dev->event_lock, flags); in drm_events_release()
438 static void drm_legacy_dev_reinit(struct drm_device *dev) in drm_legacy_dev_reinit() argument
440 if (dev->irq_enabled) in drm_legacy_dev_reinit()
441 drm_irq_uninstall(dev); in drm_legacy_dev_reinit()
443 mutex_lock(&dev->struct_mutex); in drm_legacy_dev_reinit()
445 drm_legacy_agp_clear(dev); in drm_legacy_dev_reinit()
447 drm_legacy_sg_cleanup(dev); in drm_legacy_dev_reinit()
448 drm_legacy_vma_flush(dev); in drm_legacy_dev_reinit()
449 drm_legacy_dma_takedown(dev); in drm_legacy_dev_reinit()
451 mutex_unlock(&dev->struct_mutex); in drm_legacy_dev_reinit()
453 dev->sigdata.lock = NULL; in drm_legacy_dev_reinit()
455 dev->context_flag = 0; in drm_legacy_dev_reinit()
456 dev->last_context = 0; in drm_legacy_dev_reinit()
457 dev->if_version = 0; in drm_legacy_dev_reinit()
462 void drm_lastclose(struct drm_device * dev) in drm_lastclose() argument
466 if (dev->driver->lastclose) in drm_lastclose()
467 dev->driver->lastclose(dev); in drm_lastclose()
470 if (drm_core_check_feature(dev, DRIVER_LEGACY)) in drm_lastclose()
471 drm_legacy_dev_reinit(dev); in drm_lastclose()
492 struct drm_device *dev = minor->dev; in drm_release() local
501 DRM_DEBUG("open_count = %d\n", dev->open_count); in drm_release()
503 mutex_lock(&dev->filelist_mutex); in drm_release()
505 mutex_unlock(&dev->filelist_mutex); in drm_release()
507 if (drm_core_check_feature(dev, DRIVER_LEGACY) && in drm_release()
508 dev->driver->preclose) in drm_release()
509 dev->driver->preclose(dev, file_priv); in drm_release()
517 dev, in drm_release()
518 dev->open_count); in drm_release()
520 if (drm_core_check_feature(dev, DRIVER_LEGACY)) in drm_release()
521 drm_legacy_lock_release(dev, filp); in drm_release()
523 if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) in drm_release()
524 drm_legacy_reclaim_buffers(dev, file_priv); in drm_release()
528 if (drm_core_check_feature(dev, DRIVER_MODESET)) { in drm_release()
530 drm_property_destroy_user_blobs(dev, file_priv); in drm_release()
533 if (drm_core_check_feature(dev, DRIVER_SYNCOBJ)) in drm_release()
536 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_release()
537 drm_gem_release(dev, file_priv); in drm_release()
539 drm_legacy_ctxbitmap_flush(dev, file_priv); in drm_release()
544 if (dev->driver->postclose) in drm_release()
545 dev->driver->postclose(dev, file_priv); in drm_release()
547 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_release()
559 if (!--dev->open_count) { in drm_release()
560 drm_lastclose(dev); in drm_release()
562 if (drm_dev_is_unplugged(dev)) in drm_release()
563 drm_put_dev(dev); in drm_release()
610 struct drm_device *dev = file_priv->minor->dev; in drm_read() local
620 spin_lock_irq(&dev->event_lock); in drm_read()
627 spin_unlock_irq(&dev->event_lock); in drm_read()
652 spin_lock_irq(&dev->event_lock); in drm_read()
655 spin_unlock_irq(&dev->event_lock); in drm_read()
771 int drm_event_reserve_init_locked(struct drm_device *dev, in drm_event_reserve_init_locked() argument
813 int drm_event_reserve_init(struct drm_device *dev, in drm_event_reserve_init() argument
821 spin_lock_irqsave(&dev->event_lock, flags); in drm_event_reserve_init()
822 ret = drm_event_reserve_init_locked(dev, file_priv, p, e); in drm_event_reserve_init()
823 spin_unlock_irqrestore(&dev->event_lock, flags); in drm_event_reserve_init()
838 void drm_event_cancel_free(struct drm_device *dev, in drm_event_cancel_free() argument
842 spin_lock_irqsave(&dev->event_lock, flags); in drm_event_cancel_free()
847 spin_unlock_irqrestore(&dev->event_lock, flags); in drm_event_cancel_free()
870 void drm_send_event_locked(struct drm_device *dev, struct drm_pending_event *e) in drm_send_event_locked() argument
872 assert_spin_locked(&dev->event_lock); in drm_send_event_locked()
915 void drm_send_event(struct drm_device *dev, struct drm_pending_event *e) in drm_send_event() argument
919 spin_lock_irqsave(&dev->event_lock, irqflags); in drm_send_event()
920 drm_send_event_locked(dev, e); in drm_send_event()
921 spin_unlock_irqrestore(&dev->event_lock, irqflags); in drm_send_event()