drm: Clean up drm_dev_unplug

Use drm_dev_unregister to unregister the interfaces, which also allows
us to simplify the open_count == 0 case.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170802115604.12734-5-daniel.vetter@ffwll.ch
This commit is contained in:
Daniel Vetter 2017-08-02 13:56:04 +02:00
parent 2e45eeac7c
commit 0469901ea4

View file

@ -381,21 +381,12 @@ static void drm_device_set_unplugged(struct drm_device *dev)
*/ */
void drm_dev_unplug(struct drm_device *dev) void drm_dev_unplug(struct drm_device *dev)
{ {
/* for a USB device */ drm_dev_unregister(dev);
if (drm_core_check_feature(dev, DRIVER_MODESET))
drm_modeset_unregister_all(dev);
drm_minor_unregister(dev, DRM_MINOR_PRIMARY);
drm_minor_unregister(dev, DRM_MINOR_RENDER);
drm_minor_unregister(dev, DRM_MINOR_CONTROL);
mutex_lock(&drm_global_mutex); mutex_lock(&drm_global_mutex);
drm_device_set_unplugged(dev); drm_device_set_unplugged(dev);
if (dev->open_count == 0)
if (dev->open_count == 0) { drm_dev_unref(dev);
drm_put_dev(dev);
}
mutex_unlock(&drm_global_mutex); mutex_unlock(&drm_global_mutex);
} }
EXPORT_SYMBOL(drm_dev_unplug); EXPORT_SYMBOL(drm_dev_unplug);