|
@@ -170,76 +170,6 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
|
|
|
|
|
|
#define DRM_CORE_IOCTL_COUNT ARRAY_SIZE( drm_ioctls )
|
|
|
|
|
|
-/**
|
|
|
- * drm_legacy_dev_reinit
|
|
|
- *
|
|
|
- * Reinitializes a legacy/ums drm device in it's lastclose function.
|
|
|
- */
|
|
|
-static void drm_legacy_dev_reinit(struct drm_device *dev)
|
|
|
-{
|
|
|
- int i;
|
|
|
-
|
|
|
- if (drm_core_check_feature(dev, DRIVER_MODESET))
|
|
|
- return;
|
|
|
-
|
|
|
- atomic_set(&dev->ioctl_count, 0);
|
|
|
- atomic_set(&dev->vma_count, 0);
|
|
|
-
|
|
|
- for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
|
|
|
- atomic_set(&dev->counts[i], 0);
|
|
|
-
|
|
|
- dev->sigdata.lock = NULL;
|
|
|
-
|
|
|
- dev->context_flag = 0;
|
|
|
- dev->last_context = 0;
|
|
|
- dev->if_version = 0;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * Take down the DRM device.
|
|
|
- *
|
|
|
- * \param dev DRM device structure.
|
|
|
- *
|
|
|
- * Frees every resource in \p dev.
|
|
|
- *
|
|
|
- * \sa drm_device
|
|
|
- */
|
|
|
-int drm_lastclose(struct drm_device * dev)
|
|
|
-{
|
|
|
- struct drm_vma_entry *vma, *vma_temp;
|
|
|
-
|
|
|
- DRM_DEBUG("\n");
|
|
|
-
|
|
|
- if (dev->driver->lastclose)
|
|
|
- dev->driver->lastclose(dev);
|
|
|
- DRM_DEBUG("driver lastclose completed\n");
|
|
|
-
|
|
|
- if (dev->irq_enabled && !drm_core_check_feature(dev, DRIVER_MODESET))
|
|
|
- drm_irq_uninstall(dev);
|
|
|
-
|
|
|
- mutex_lock(&dev->struct_mutex);
|
|
|
-
|
|
|
- drm_agp_clear(dev);
|
|
|
-
|
|
|
- drm_legacy_sg_cleanup(dev);
|
|
|
-
|
|
|
- /* Clear vma list (only built for debugging) */
|
|
|
- list_for_each_entry_safe(vma, vma_temp, &dev->vmalist, head) {
|
|
|
- list_del(&vma->head);
|
|
|
- kfree(vma);
|
|
|
- }
|
|
|
-
|
|
|
- drm_legacy_dma_takedown(dev);
|
|
|
-
|
|
|
- dev->dev_mapping = NULL;
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
-
|
|
|
- drm_legacy_dev_reinit(dev);
|
|
|
-
|
|
|
- DRM_DEBUG("lastclose completed\n");
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
/** File operations structure */
|
|
|
static const struct file_operations drm_stub_fops = {
|
|
|
.owner = THIS_MODULE,
|