Lines Matching refs:dev
49 static int drm_setup(struct drm_device * dev) in drm_setup() argument
53 if (dev->driver->firstopen && in drm_setup()
54 !drm_core_check_feature(dev, DRIVER_MODESET)) { in drm_setup()
55 ret = dev->driver->firstopen(dev); in drm_setup()
60 ret = drm_legacy_dma_setup(dev); in drm_setup()
82 struct drm_device *dev; in drm_open() local
91 dev = minor->dev; in drm_open()
92 if (!dev->open_count++) in drm_open()
96 filp->f_mapping = dev->anon_inode->i_mapping; in drm_open()
102 retcode = drm_setup(dev); in drm_open()
109 dev->open_count--; in drm_open()
138 int drm_new_set_master(struct drm_device *dev, struct drm_file *fpriv) in drm_new_set_master() argument
143 lockdep_assert_held_once(&dev->master_mutex); in drm_new_set_master()
154 if (dev->driver->master_create) { in drm_new_set_master()
155 ret = dev->driver->master_create(dev, fpriv->master); in drm_new_set_master()
159 if (dev->driver->master_set) { in drm_new_set_master()
160 ret = dev->driver->master_set(dev, fpriv, true); in drm_new_set_master()
194 struct drm_device *dev = minor->dev; in drm_open_helper() local
202 …if (dev->switch_power_state != DRM_SWITCH_POWER_ON && dev->switch_power_state != DRM_SWITCH_POWER_… in drm_open_helper()
229 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_open_helper()
230 drm_gem_open(dev, priv); in drm_open_helper()
232 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
235 if (dev->driver->open) { in drm_open_helper()
236 ret = dev->driver->open(dev, priv); in drm_open_helper()
243 mutex_lock(&dev->master_mutex); in drm_open_helper()
246 ret = drm_new_set_master(dev, priv); in drm_open_helper()
253 mutex_unlock(&dev->master_mutex); in drm_open_helper()
255 mutex_lock(&dev->struct_mutex); in drm_open_helper()
256 list_add(&priv->lhead, &dev->filelist); in drm_open_helper()
257 mutex_unlock(&dev->struct_mutex); in drm_open_helper()
263 if (!dev->hose) { in drm_open_helper()
267 dev->hose = pci_dev->sysdata; in drm_open_helper()
270 if (!dev->hose) { in drm_open_helper()
274 dev->hose = b->sysdata; in drm_open_helper()
282 mutex_unlock(&dev->master_mutex); in drm_open_helper()
283 if (dev->driver->postclose) in drm_open_helper()
284 dev->driver->postclose(dev, priv); in drm_open_helper()
286 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
288 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_open_helper()
289 drm_gem_release(dev, priv); in drm_open_helper()
296 static void drm_master_release(struct drm_device *dev, struct file *filp) in drm_master_release() argument
300 if (drm_legacy_i_have_hw_lock(dev, file_priv)) { in drm_master_release()
310 struct drm_device *dev = file_priv->minor->dev; in drm_events_release() local
315 spin_lock_irqsave(&dev->event_lock, flags); in drm_events_release()
318 list_for_each_entry_safe(v, vt, &dev->vblank_event_list, base.link) in drm_events_release()
321 drm_vblank_put(dev, v->pipe); in drm_events_release()
331 spin_unlock_irqrestore(&dev->event_lock, flags); in drm_events_release()
339 static void drm_legacy_dev_reinit(struct drm_device *dev) in drm_legacy_dev_reinit() argument
341 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_legacy_dev_reinit()
344 dev->sigdata.lock = NULL; in drm_legacy_dev_reinit()
346 dev->context_flag = 0; in drm_legacy_dev_reinit()
347 dev->last_context = 0; in drm_legacy_dev_reinit()
348 dev->if_version = 0; in drm_legacy_dev_reinit()
360 int drm_lastclose(struct drm_device * dev) in drm_lastclose() argument
364 if (dev->driver->lastclose) in drm_lastclose()
365 dev->driver->lastclose(dev); in drm_lastclose()
368 if (dev->irq_enabled && !drm_core_check_feature(dev, DRIVER_MODESET)) in drm_lastclose()
369 drm_irq_uninstall(dev); in drm_lastclose()
371 mutex_lock(&dev->struct_mutex); in drm_lastclose()
373 drm_agp_clear(dev); in drm_lastclose()
375 drm_legacy_sg_cleanup(dev); in drm_lastclose()
376 drm_legacy_vma_flush(dev); in drm_lastclose()
377 drm_legacy_dma_takedown(dev); in drm_lastclose()
379 mutex_unlock(&dev->struct_mutex); in drm_lastclose()
381 drm_legacy_dev_reinit(dev); in drm_lastclose()
403 struct drm_device *dev = minor->dev; in drm_release() local
408 DRM_DEBUG("open_count = %d\n", dev->open_count); in drm_release()
410 mutex_lock(&dev->struct_mutex); in drm_release()
414 mutex_unlock(&dev->struct_mutex); in drm_release()
416 if (dev->driver->preclose) in drm_release()
417 dev->driver->preclose(dev, file_priv); in drm_release()
426 dev->open_count); in drm_release()
430 drm_master_release(dev, filp); in drm_release()
432 if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) in drm_release()
433 drm_legacy_reclaim_buffers(dev, file_priv); in drm_release()
437 if (drm_core_check_feature(dev, DRIVER_MODESET)) { in drm_release()
439 drm_property_destroy_user_blobs(dev, file_priv); in drm_release()
442 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_release()
443 drm_gem_release(dev, file_priv); in drm_release()
445 drm_legacy_ctxbitmap_flush(dev, file_priv); in drm_release()
447 mutex_lock(&dev->master_mutex); in drm_release()
456 mutex_lock(&dev->struct_mutex); in drm_release()
458 if (dev->sigdata.lock == master->lock.hw_lock) in drm_release()
459 dev->sigdata.lock = NULL; in drm_release()
464 mutex_unlock(&dev->struct_mutex); in drm_release()
468 if (dev->driver->master_drop) in drm_release()
469 dev->driver->master_drop(dev, file_priv, true); in drm_release()
478 mutex_unlock(&dev->master_mutex); in drm_release()
480 if (dev->driver->postclose) in drm_release()
481 dev->driver->postclose(dev, file_priv); in drm_release()
484 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_release()
496 if (!--dev->open_count) { in drm_release()
497 retcode = drm_lastclose(dev); in drm_release()
498 if (drm_device_is_unplugged(dev)) in drm_release()
499 drm_put_dev(dev); in drm_release()
513 struct drm_device *dev = file_priv->minor->dev; in drm_read() local
519 spin_lock_irq(&dev->event_lock); in drm_read()
530 spin_unlock_irq(&dev->event_lock); in drm_read()
533 spin_lock_irq(&dev->event_lock); in drm_read()
559 spin_unlock_irq(&dev->event_lock); in drm_read()