Lines Matching refs:dev

84 static int drm_minor_get_id(struct drm_device *dev, int type)  in drm_minor_get_id()  argument
88 new_id = device_get_unit(dev->dev); in drm_minor_get_id()
133 struct drm_device *dev = master->minor->dev; in drm_master_destroy() local
138 if (dev->driver->master_destroy) in drm_master_destroy()
139 dev->driver->master_destroy(dev, master); in drm_master_destroy()
141 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) { in drm_master_destroy()
143 drm_rmmap_locked(dev, r_list->map); in drm_master_destroy()
173 int drm_setmaster_ioctl(struct drm_device *dev, void *data, in drm_setmaster_ioctl() argument
190 DRM_LOCK(dev); in drm_setmaster_ioctl()
193 if (dev->driver->master_set) { in drm_setmaster_ioctl()
194 ret = dev->driver->master_set(dev, file_priv, false); in drm_setmaster_ioctl()
200 DRM_UNLOCK(dev); in drm_setmaster_ioctl()
205 int drm_dropmaster_ioctl(struct drm_device *dev, void *data, in drm_dropmaster_ioctl() argument
214 DRM_LOCK(dev); in drm_dropmaster_ioctl()
215 if (dev->driver->master_drop) in drm_dropmaster_ioctl()
216 dev->driver->master_drop(dev, file_priv, false); in drm_dropmaster_ioctl()
219 DRM_UNLOCK(dev); in drm_dropmaster_ioctl()
223 int drm_fill_in_dev(struct drm_device *dev, in drm_fill_in_dev() argument
228 INIT_LIST_HEAD(&dev->filelist); in drm_fill_in_dev()
229 INIT_LIST_HEAD(&dev->ctxlist); in drm_fill_in_dev()
230 INIT_LIST_HEAD(&dev->maplist); in drm_fill_in_dev()
231 INIT_LIST_HEAD(&dev->vblank_event_list); in drm_fill_in_dev()
233 mtx_init(&dev->irq_lock, "drmirq", NULL, MTX_DEF); in drm_fill_in_dev()
234 mtx_init(&dev->count_lock, "drmcount", NULL, MTX_DEF); in drm_fill_in_dev()
235 mtx_init(&dev->event_lock, "drmev", NULL, MTX_DEF); in drm_fill_in_dev()
236 sx_init(&dev->dev_struct_lock, "drmslk"); in drm_fill_in_dev()
237 mtx_init(&dev->ctxlist_mutex, "drmctxlist", NULL, MTX_DEF); in drm_fill_in_dev()
238 mtx_init(&dev->pcir_lock, "drmpcir", NULL, MTX_DEF); in drm_fill_in_dev()
240 if (drm_ht_create(&dev->map_hash, 12)) { in drm_fill_in_dev()
245 dev->counters = 6; in drm_fill_in_dev()
246 dev->types[0] = _DRM_STAT_LOCK; in drm_fill_in_dev()
247 dev->types[1] = _DRM_STAT_OPENS; in drm_fill_in_dev()
248 dev->types[2] = _DRM_STAT_CLOSES; in drm_fill_in_dev()
249 dev->types[3] = _DRM_STAT_IOCTLS; in drm_fill_in_dev()
250 dev->types[4] = _DRM_STAT_LOCKS; in drm_fill_in_dev()
251 dev->types[5] = _DRM_STAT_UNLOCKS; in drm_fill_in_dev()
256 for (i = 0; i < ARRAY_SIZE(dev->counts); i++) in drm_fill_in_dev()
257 atomic_set(&dev->counts[i], 0); in drm_fill_in_dev()
259 dev->driver = driver; in drm_fill_in_dev()
261 retcode = drm_pci_agp_init(dev); in drm_fill_in_dev()
267 retcode = drm_ctxbitmap_init(dev); in drm_fill_in_dev()
274 retcode = drm_gem_init(dev); in drm_fill_in_dev()
282 retcode = drm_sysctl_init(dev); in drm_fill_in_dev()
291 drm_cancel_fill_in_dev(dev); in drm_fill_in_dev()
296 void drm_cancel_fill_in_dev(struct drm_device *dev) in drm_cancel_fill_in_dev() argument
300 driver = dev->driver; in drm_cancel_fill_in_dev()
302 drm_sysctl_cleanup(dev); in drm_cancel_fill_in_dev()
304 drm_gem_destroy(dev); in drm_cancel_fill_in_dev()
305 drm_ctxbitmap_cleanup(dev); in drm_cancel_fill_in_dev()
307 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && in drm_cancel_fill_in_dev()
308 dev->agp && dev->agp->agp_mtrr >= 0) { in drm_cancel_fill_in_dev()
310 retval = drm_mtrr_del(dev->agp->agp_mtrr, in drm_cancel_fill_in_dev()
311 dev->agp->agp_info.ai_aperture_base, in drm_cancel_fill_in_dev()
312 dev->agp->agp_info.ai_aperture_size, in drm_cancel_fill_in_dev()
316 free(dev->agp, DRM_MEM_AGPLISTS); in drm_cancel_fill_in_dev()
317 dev->agp = NULL; in drm_cancel_fill_in_dev()
319 drm_ht_remove(&dev->map_hash); in drm_cancel_fill_in_dev()
321 mtx_destroy(&dev->irq_lock); in drm_cancel_fill_in_dev()
322 mtx_destroy(&dev->count_lock); in drm_cancel_fill_in_dev()
323 mtx_destroy(&dev->event_lock); in drm_cancel_fill_in_dev()
324 sx_destroy(&dev->dev_struct_lock); in drm_cancel_fill_in_dev()
325 mtx_destroy(&dev->ctxlist_mutex); in drm_cancel_fill_in_dev()
326 mtx_destroy(&dev->pcir_lock); in drm_cancel_fill_in_dev()
340 int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type) in drm_get_minor() argument
349 minor_id = drm_minor_get_id(dev, type); in drm_get_minor()
361 new_minor->dev = dev; in drm_get_minor()
434 void drm_put_dev(struct drm_device *dev) in drm_put_dev() argument
441 if (!dev) { in drm_put_dev()
445 driver = dev->driver; in drm_put_dev()
447 drm_lastclose(dev); in drm_put_dev()
449 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && in drm_put_dev()
450 dev->agp && dev->agp->agp_mtrr >= 0) { in drm_put_dev()
452 retval = drm_mtrr_del(dev->agp->agp_mtrr, in drm_put_dev()
453 dev->agp->agp_info.ai_aperture_base, in drm_put_dev()
454 dev->agp->agp_info.ai_aperture_size, in drm_put_dev()
459 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_put_dev()
460 drm_mode_group_free(&dev->primary->mode_group); in drm_put_dev()
462 if (dev->driver->unload) in drm_put_dev()
463 dev->driver->unload(dev); in drm_put_dev()
465 drm_sysctl_cleanup(dev); in drm_put_dev()
467 if (drm_core_has_AGP(dev) && dev->agp) { in drm_put_dev()
468 free(dev->agp, DRM_MEM_AGPLISTS); in drm_put_dev()
469 dev->agp = NULL; in drm_put_dev()
472 drm_vblank_cleanup(dev); in drm_put_dev()
474 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) in drm_put_dev()
475 drm_rmmap(dev, r_list->map); in drm_put_dev()
476 drm_ht_remove(&dev->map_hash); in drm_put_dev()
478 drm_ctxbitmap_cleanup(dev); in drm_put_dev()
480 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_put_dev()
481 drm_put_minor(&dev->control); in drm_put_dev()
484 drm_gem_destroy(dev); in drm_put_dev()
486 drm_put_minor(&dev->primary); in drm_put_dev()
488 mtx_destroy(&dev->irq_lock); in drm_put_dev()
489 mtx_destroy(&dev->count_lock); in drm_put_dev()
490 mtx_destroy(&dev->event_lock); in drm_put_dev()
491 sx_destroy(&dev->dev_struct_lock); in drm_put_dev()
492 mtx_destroy(&dev->ctxlist_mutex); in drm_put_dev()
493 mtx_destroy(&dev->pcir_lock); in drm_put_dev()
496 list_del(&dev->driver_item); in drm_put_dev()