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()
140 struct drm_device *dev = minor->dev; in drm_open_helper() local
148 …if (dev->switch_power_state != DRM_SWITCH_POWER_ON && dev->switch_power_state != DRM_SWITCH_POWER_… in drm_open_helper()
174 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_open_helper()
175 drm_gem_open(dev, priv); in drm_open_helper()
177 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
180 if (dev->driver->open) { in drm_open_helper()
181 ret = dev->driver->open(dev, priv); in drm_open_helper()
188 mutex_lock(&dev->master_mutex); in drm_open_helper()
202 if (dev->driver->master_create) { in drm_open_helper()
203 ret = dev->driver->master_create(dev, priv->master); in drm_open_helper()
211 if (dev->driver->master_set) { in drm_open_helper()
212 ret = dev->driver->master_set(dev, priv, true); in drm_open_helper()
224 mutex_unlock(&dev->master_mutex); in drm_open_helper()
226 mutex_lock(&dev->struct_mutex); in drm_open_helper()
227 list_add(&priv->lhead, &dev->filelist); in drm_open_helper()
228 mutex_unlock(&dev->struct_mutex); in drm_open_helper()
234 if (!dev->hose) { in drm_open_helper()
238 dev->hose = pci_dev->sysdata; in drm_open_helper()
241 if (!dev->hose) { in drm_open_helper()
245 dev->hose = b->sysdata; in drm_open_helper()
253 mutex_unlock(&dev->master_mutex); in drm_open_helper()
254 if (dev->driver->postclose) in drm_open_helper()
255 dev->driver->postclose(dev, priv); in drm_open_helper()
257 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_open_helper()
259 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_open_helper()
260 drm_gem_release(dev, priv); in drm_open_helper()
267 static void drm_master_release(struct drm_device *dev, struct file *filp) in drm_master_release() argument
271 if (drm_legacy_i_have_hw_lock(dev, file_priv)) { in drm_master_release()
281 struct drm_device *dev = file_priv->minor->dev; in drm_events_release() local
286 spin_lock_irqsave(&dev->event_lock, flags); in drm_events_release()
289 list_for_each_entry_safe(v, vt, &dev->vblank_event_list, base.link) in drm_events_release()
292 drm_vblank_put(dev, v->pipe); in drm_events_release()
302 spin_unlock_irqrestore(&dev->event_lock, flags); in drm_events_release()
310 static void drm_legacy_dev_reinit(struct drm_device *dev) in drm_legacy_dev_reinit() argument
312 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_legacy_dev_reinit()
315 dev->sigdata.lock = NULL; in drm_legacy_dev_reinit()
317 dev->context_flag = 0; in drm_legacy_dev_reinit()
318 dev->last_context = 0; in drm_legacy_dev_reinit()
319 dev->if_version = 0; in drm_legacy_dev_reinit()
331 int drm_lastclose(struct drm_device * dev) in drm_lastclose() argument
335 if (dev->driver->lastclose) in drm_lastclose()
336 dev->driver->lastclose(dev); in drm_lastclose()
339 if (dev->irq_enabled && !drm_core_check_feature(dev, DRIVER_MODESET)) in drm_lastclose()
340 drm_irq_uninstall(dev); in drm_lastclose()
342 mutex_lock(&dev->struct_mutex); in drm_lastclose()
344 drm_agp_clear(dev); in drm_lastclose()
346 drm_legacy_sg_cleanup(dev); in drm_lastclose()
347 drm_legacy_vma_flush(dev); in drm_lastclose()
348 drm_legacy_dma_takedown(dev); in drm_lastclose()
350 mutex_unlock(&dev->struct_mutex); in drm_lastclose()
352 drm_legacy_dev_reinit(dev); in drm_lastclose()
374 struct drm_device *dev = minor->dev; in drm_release() local
379 DRM_DEBUG("open_count = %d\n", dev->open_count); in drm_release()
381 mutex_lock(&dev->struct_mutex); in drm_release()
383 mutex_unlock(&dev->struct_mutex); in drm_release()
385 if (dev->driver->preclose) in drm_release()
386 dev->driver->preclose(dev, file_priv); in drm_release()
395 dev->open_count); in drm_release()
404 drm_master_release(dev, filp); in drm_release()
406 if (drm_core_check_feature(dev, DRIVER_HAVE_DMA)) in drm_release()
407 drm_legacy_reclaim_buffers(dev, file_priv); in drm_release()
411 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_release()
414 if (drm_core_check_feature(dev, DRIVER_GEM)) in drm_release()
415 drm_gem_release(dev, file_priv); in drm_release()
417 drm_legacy_ctxbitmap_flush(dev, file_priv); in drm_release()
419 mutex_lock(&dev->master_mutex); in drm_release()
428 mutex_lock(&dev->struct_mutex); in drm_release()
430 if (dev->sigdata.lock == master->lock.hw_lock) in drm_release()
431 dev->sigdata.lock = NULL; in drm_release()
436 mutex_unlock(&dev->struct_mutex); in drm_release()
440 if (dev->driver->master_drop) in drm_release()
441 dev->driver->master_drop(dev, file_priv, true); in drm_release()
450 mutex_unlock(&dev->master_mutex); in drm_release()
452 if (dev->driver->postclose) in drm_release()
453 dev->driver->postclose(dev, file_priv); in drm_release()
456 if (drm_core_check_feature(dev, DRIVER_PRIME)) in drm_release()
468 if (!--dev->open_count) { in drm_release()
469 retcode = drm_lastclose(dev); in drm_release()
470 if (drm_device_is_unplugged(dev)) in drm_release()
471 drm_put_dev(dev); in drm_release()
485 struct drm_device *dev = file_priv->minor->dev; in drm_read() local
491 spin_lock_irq(&dev->event_lock); in drm_read()
502 spin_unlock_irq(&dev->event_lock); in drm_read()
505 spin_lock_irq(&dev->event_lock); in drm_read()
531 spin_unlock_irq(&dev->event_lock); in drm_read()