diff options
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
| -rw-r--r-- | drivers/gpu/drm/drm_stub.c | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index 6d7b083c5b7..aa454f80e10 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -319,6 +319,7 @@ int drm_fill_in_dev(struct drm_device *dev,  	drm_lastclose(dev);  	return retcode;  } +EXPORT_SYMBOL(drm_fill_in_dev);  /** @@ -397,6 +398,7 @@ err_idr:  	*minor = NULL;  	return ret;  } +EXPORT_SYMBOL(drm_get_minor);  /**   * Put a secondary minor number. @@ -428,6 +430,12 @@ int drm_put_minor(struct drm_minor **minor_p)  	*minor_p = NULL;  	return 0;  } +EXPORT_SYMBOL(drm_put_minor); + +static void drm_unplug_minor(struct drm_minor *minor) +{ +	drm_sysfs_device_remove(minor); +}  /**   * Called via drm_exit() at module unload time or when pci device is @@ -492,3 +500,21 @@ void drm_put_dev(struct drm_device *dev)  	kfree(dev);  }  EXPORT_SYMBOL(drm_put_dev); + +void drm_unplug_dev(struct drm_device *dev) +{ +	/* for a USB device */ +	if (drm_core_check_feature(dev, DRIVER_MODESET)) +		drm_unplug_minor(dev->control); +	drm_unplug_minor(dev->primary); + +	mutex_lock(&drm_global_mutex); + +	drm_device_set_unplugged(dev); + +	if (dev->open_count == 0) { +		drm_put_dev(dev); +	} +	mutex_unlock(&drm_global_mutex); +} +EXPORT_SYMBOL(drm_unplug_dev);  |