Lines Matching refs:dev

86 static int drm_minor_get_id(struct drm_device *dev, int type)  in drm_minor_get_id()  argument
90 new_id = device_get_unit(dev->dev); in drm_minor_get_id()
135 struct drm_device *dev = master->minor->dev; in drm_master_destroy() local
140 if (dev->driver->master_destroy) in drm_master_destroy()
141 dev->driver->master_destroy(dev, master); in drm_master_destroy()
143 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) { in drm_master_destroy()
145 drm_rmmap_locked(dev, r_list->map); in drm_master_destroy()
175 int drm_setmaster_ioctl(struct drm_device *dev, void *data, in drm_setmaster_ioctl() argument
192 DRM_LOCK(dev); in drm_setmaster_ioctl()
195 if (dev->driver->master_set) { in drm_setmaster_ioctl()
196 ret = dev->driver->master_set(dev, file_priv, false); in drm_setmaster_ioctl()
202 DRM_UNLOCK(dev); in drm_setmaster_ioctl()
207 int drm_dropmaster_ioctl(struct drm_device *dev, void *data, in drm_dropmaster_ioctl() argument
216 DRM_LOCK(dev); in drm_dropmaster_ioctl()
217 if (dev->driver->master_drop) in drm_dropmaster_ioctl()
218 dev->driver->master_drop(dev, file_priv, false); in drm_dropmaster_ioctl()
221 DRM_UNLOCK(dev); in drm_dropmaster_ioctl()
225 int drm_fill_in_dev(struct drm_device *dev, in drm_fill_in_dev() argument
230 INIT_LIST_HEAD(&dev->filelist); in drm_fill_in_dev()
231 INIT_LIST_HEAD(&dev->ctxlist); in drm_fill_in_dev()
232 INIT_LIST_HEAD(&dev->maplist); in drm_fill_in_dev()
233 INIT_LIST_HEAD(&dev->vblank_event_list); in drm_fill_in_dev()
235 mtx_init(&dev->irq_lock, "drmirq", NULL, MTX_DEF); in drm_fill_in_dev()
236 mtx_init(&dev->count_lock, "drmcount", NULL, MTX_DEF); in drm_fill_in_dev()
237 mtx_init(&dev->event_lock, "drmev", NULL, MTX_DEF); in drm_fill_in_dev()
238 sx_init(&dev->dev_struct_lock, "drmslk"); in drm_fill_in_dev()
239 mtx_init(&dev->ctxlist_mutex, "drmctxlist", NULL, MTX_DEF); in drm_fill_in_dev()
240 mtx_init(&dev->pcir_lock, "drmpcir", NULL, MTX_DEF); in drm_fill_in_dev()
242 if (drm_ht_create(&dev->map_hash, 12)) { in drm_fill_in_dev()
247 dev->counters = 6; in drm_fill_in_dev()
248 dev->types[0] = _DRM_STAT_LOCK; in drm_fill_in_dev()
249 dev->types[1] = _DRM_STAT_OPENS; in drm_fill_in_dev()
250 dev->types[2] = _DRM_STAT_CLOSES; in drm_fill_in_dev()
251 dev->types[3] = _DRM_STAT_IOCTLS; in drm_fill_in_dev()
252 dev->types[4] = _DRM_STAT_LOCKS; in drm_fill_in_dev()
253 dev->types[5] = _DRM_STAT_UNLOCKS; in drm_fill_in_dev()
258 for (i = 0; i < ARRAY_SIZE(dev->counts); i++) in drm_fill_in_dev()
259 atomic_set(&dev->counts[i], 0); in drm_fill_in_dev()
261 dev->driver = driver; in drm_fill_in_dev()
263 retcode = drm_pci_agp_init(dev); in drm_fill_in_dev()
269 retcode = drm_ctxbitmap_init(dev); in drm_fill_in_dev()
276 retcode = drm_gem_init(dev); in drm_fill_in_dev()
284 retcode = drm_sysctl_init(dev); in drm_fill_in_dev()
293 drm_cancel_fill_in_dev(dev); in drm_fill_in_dev()
298 void drm_cancel_fill_in_dev(struct drm_device *dev) in drm_cancel_fill_in_dev() argument
302 driver = dev->driver; in drm_cancel_fill_in_dev()
304 drm_sysctl_cleanup(dev); in drm_cancel_fill_in_dev()
306 drm_gem_destroy(dev); in drm_cancel_fill_in_dev()
307 drm_ctxbitmap_cleanup(dev); in drm_cancel_fill_in_dev()
309 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && in drm_cancel_fill_in_dev()
310 dev->agp && dev->agp->agp_mtrr >= 0) { in drm_cancel_fill_in_dev()
312 retval = drm_mtrr_del(dev->agp->agp_mtrr, in drm_cancel_fill_in_dev()
313 dev->agp->agp_info.ai_aperture_base, in drm_cancel_fill_in_dev()
314 dev->agp->agp_info.ai_aperture_size, in drm_cancel_fill_in_dev()
318 free(dev->agp, DRM_MEM_AGPLISTS); in drm_cancel_fill_in_dev()
319 dev->agp = NULL; in drm_cancel_fill_in_dev()
321 drm_ht_remove(&dev->map_hash); in drm_cancel_fill_in_dev()
323 mtx_destroy(&dev->irq_lock); in drm_cancel_fill_in_dev()
324 mtx_destroy(&dev->count_lock); in drm_cancel_fill_in_dev()
325 mtx_destroy(&dev->event_lock); in drm_cancel_fill_in_dev()
326 sx_destroy(&dev->dev_struct_lock); in drm_cancel_fill_in_dev()
327 mtx_destroy(&dev->ctxlist_mutex); in drm_cancel_fill_in_dev()
328 mtx_destroy(&dev->pcir_lock); in drm_cancel_fill_in_dev()
342 int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type) in drm_get_minor() argument
351 minor_id = drm_minor_get_id(dev, type); in drm_get_minor()
363 new_minor->dev = dev; in drm_get_minor()
436 void drm_put_dev(struct drm_device *dev) in drm_put_dev() argument
443 if (!dev) { in drm_put_dev()
447 driver = dev->driver; in drm_put_dev()
449 drm_lastclose(dev); in drm_put_dev()
451 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && in drm_put_dev()
452 dev->agp && dev->agp->agp_mtrr >= 0) { in drm_put_dev()
454 retval = drm_mtrr_del(dev->agp->agp_mtrr, in drm_put_dev()
455 dev->agp->agp_info.ai_aperture_base, in drm_put_dev()
456 dev->agp->agp_info.ai_aperture_size, in drm_put_dev()
461 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_put_dev()
462 drm_mode_group_free(&dev->primary->mode_group); in drm_put_dev()
464 if (dev->driver->unload) in drm_put_dev()
465 dev->driver->unload(dev); in drm_put_dev()
467 drm_sysctl_cleanup(dev); in drm_put_dev()
469 if (drm_core_has_AGP(dev) && dev->agp) { in drm_put_dev()
470 free(dev->agp, DRM_MEM_AGPLISTS); in drm_put_dev()
471 dev->agp = NULL; in drm_put_dev()
474 drm_vblank_cleanup(dev); in drm_put_dev()
476 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) in drm_put_dev()
477 drm_rmmap(dev, r_list->map); in drm_put_dev()
478 drm_ht_remove(&dev->map_hash); in drm_put_dev()
480 drm_ctxbitmap_cleanup(dev); in drm_put_dev()
482 if (drm_core_check_feature(dev, DRIVER_MODESET)) in drm_put_dev()
483 drm_put_minor(&dev->control); in drm_put_dev()
486 drm_gem_destroy(dev); in drm_put_dev()
488 drm_put_minor(&dev->primary); in drm_put_dev()
490 mtx_destroy(&dev->irq_lock); in drm_put_dev()
491 mtx_destroy(&dev->count_lock); in drm_put_dev()
492 mtx_destroy(&dev->event_lock); in drm_put_dev()
493 sx_destroy(&dev->dev_struct_lock); in drm_put_dev()
494 mtx_destroy(&dev->ctxlist_mutex); in drm_put_dev()
495 mtx_destroy(&dev->pcir_lock); in drm_put_dev()
498 list_del(&dev->driver_item); in drm_put_dev()