Lines Matching refs:dev

51 static int drm_minor_get_id(struct drm_device *dev, int type)
82 mutex_lock(&dev->struct_mutex);
85 mutex_unlock(&dev->struct_mutex);
108 mutex_init(&master->lock.lock_mutex, NULL, MUTEX_DRIVER, (void *)minor->dev->pdev->intr_block);
133 struct drm_device *dev = master->minor->dev;
139 if (dev->driver->master_destroy)
140 dev->driver->master_destroy(dev, master);
142 list_for_each_entry_safe(r_list, list_temp, struct drm_map_list, &dev->maplist, head) {
144 (void) drm_rmmap_locked(dev, r_list->map);
181 if (dev->driver->entervt)
182 dev->driver->entervt(dev);
195 mutex_lock(&dev->struct_mutex);
198 if (dev->driver->master_set) {
199 ret = dev->driver->master_set(dev, file, false);
205 mutex_unlock(&dev->struct_mutex);
220 if (dev->driver->leavevt)
221 dev->driver->leavevt(dev);
223 mutex_lock(&dev->struct_mutex);
224 if (dev->driver->master_drop)
225 dev->driver->master_drop(dev, file, false);
228 mutex_unlock(&dev->struct_mutex);
232 static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev,
237 INIT_LIST_HEAD(&dev->filelist);
238 INIT_LIST_HEAD(&dev->ctxlist);
239 INIT_LIST_HEAD(&dev->maplist);
240 INIT_LIST_HEAD(&dev->vblank_event_list);
241 INIT_LIST_HEAD(&dev->gem_objects_list);
243 mutex_init(&dev->count_lock, NULL, MUTEX_DRIVER, (void *)pdev->intr_block);
244 mutex_init(&dev->event_lock, NULL, MUTEX_DRIVER, (void *)pdev->intr_block);
245 mutex_init(&dev->struct_mutex, NULL, MUTEX_DRIVER, NULL); //adaptive locks
246 mutex_init(&dev->ctxlist_mutex, NULL, MUTEX_DRIVER, NULL);
247 mutex_init(&dev->irq_lock, NULL, MUTEX_DRIVER, (void *)pdev->intr_block);
248 mutex_init(&dev->track_lock, NULL, MUTEX_DRIVER, (void *)pdev->intr_block);
249 mutex_init(&dev->page_fault_lock, NULL, MUTEX_DRIVER, NULL);
251 dev->pdev = pdev;
252 dev->pci_device = pdev->device;
253 dev->pci_vendor = pdev->vendor;
255 idr_init(&dev->map_idr);
258 dev->counters = 6;
259 dev->types[0] = _DRM_STAT_LOCK;
260 dev->types[1] = _DRM_STAT_OPENS;
261 dev->types[2] = _DRM_STAT_CLOSES;
262 dev->types[3] = _DRM_STAT_IOCTLS;
263 dev->types[4] = _DRM_STAT_LOCKS;
264 dev->types[5] = _DRM_STAT_UNLOCKS;
266 dev->driver = driver;
268 retcode = drm_ctxbitmap_init(dev);
275 retcode = drm_gem_init(dev);
283 dev->drm_wq = create_workqueue(dev->devinfo, "drm");
284 if (dev->drm_wq == NULL) {
292 (void)drm_lastclose(dev);
300 * \param dev device data structure
308 static int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type)
316 minor_id = drm_minor_get_id(dev, type);
327 new_minor->dev = dev;
373 int drm_get_dev(struct drm_device *dev, struct pci_dev *pdev,
380 if ((ret = drm_fill_in_dev(dev, pdev, driver))) {
385 if ((ret = drm_get_minor(dev, &dev->vgatext, DRM_MINOR_VGATEXT))) {
389 if (dev->driver->agp_support_detect)
390 dev->driver->agp_support_detect(dev, driver_data);
392 if (drm_core_has_AGP(dev)) {
393 if ((ret = drm_get_minor(dev, &dev->agpmaster, DRM_MINOR_AGPMASTER)))
397 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
398 ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL);
403 if ((ret = drm_get_minor(dev, &dev->primary, DRM_MINOR_LEGACY)))
406 if (dev->driver->load) {
407 ret = dev->driver->load(dev, driver_data);
412 if (drm_init_kstats(dev)) {
425 (void) drm_put_minor(&dev->primary);
427 if (drm_core_check_feature(dev, DRIVER_MODESET))
428 (void) drm_put_minor(&dev->control);
430 (void) drm_put_minor(&dev->vgatext);
432 if (drm_core_has_AGP(dev))
433 (void) drm_put_minor(&dev->agpmaster);
473 void drm_put_dev(struct drm_device *dev)
480 if (!dev) {
481 DRM_ERROR("cleanup called no dev\n");
484 driver = dev->driver;
486 (void) drm_lastclose(dev);
488 (void) destroy_workqueue(dev->drm_wq);
490 if (dev->driver->unload)
491 dev->driver->unload(dev);
495 if (drm_core_has_AGP(dev) && dev->agp) {
496 drm_agp_cleanup(dev);
497 kfree(dev->agp, sizeof(*dev->agp));
498 dev->agp = NULL;
501 drm_vblank_cleanup(dev);
503 list_for_each_entry_safe(r_list, list_temp, struct drm_map_list, &dev->maplist, head)
504 (void) drm_rmmap(dev, r_list->map);
505 idr_destroy(&dev->map_idr);
507 drm_ctxbitmap_cleanup(dev);
509 (void) drm_put_minor(&dev->vgatext);
511 if (drm_core_has_AGP(dev))
512 (void) drm_put_minor(&dev->agpmaster);
514 if (drm_core_check_feature(dev, DRIVER_MODESET))
515 (void) drm_put_minor(&dev->control);
518 drm_gem_destroy(dev);
520 (void) drm_put_minor(&dev->primary);
522 mutex_destroy(&dev->irq_lock);
523 mutex_destroy(&dev->ctxlist_mutex);
524 mutex_destroy(&dev->struct_mutex);
525 mutex_destroy(&dev->event_lock);
526 mutex_destroy(&dev->count_lock);
528 drm_fini_kstats(dev);