Commit afcdbc86 authored by David Herrmann's avatar David Herrmann

drm: rename drm_unplug/get_minor() to drm_minor_register/unregister()

drm_get_minor() no longer allocates objects, and drm_unplug_minor() is now
the exact reverse of it. Rename it to _register/unregister() so their
name actually says what they do.

Furthermore, remove the direct minor-ptr and instead pass the minor-type.
This way we know the actual slot of the minor and can reset it if
required.
Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent bd9dfa98
...@@ -302,18 +302,7 @@ static void drm_minor_free(struct drm_device *dev, unsigned int type) ...@@ -302,18 +302,7 @@ static void drm_minor_free(struct drm_device *dev, unsigned int type)
} }
} }
/** static int drm_minor_register(struct drm_device *dev, unsigned int type)
* drm_get_minor - Register DRM minor
* @dev: DRM device
* @type: Type of minor
*
* Register minor of given type.
* Caller must hold the global DRM mutex.
*
* RETURNS:
* 0 on success, negative error code on failure.
*/
static int drm_get_minor(struct drm_device *dev, unsigned int type)
{ {
struct drm_minor *new_minor; struct drm_minor *new_minor;
int ret; int ret;
...@@ -362,18 +351,11 @@ static int drm_get_minor(struct drm_device *dev, unsigned int type) ...@@ -362,18 +351,11 @@ static int drm_get_minor(struct drm_device *dev, unsigned int type)
return ret; return ret;
} }
/** static void drm_minor_unregister(struct drm_device *dev, unsigned int type)
* drm_unplug_minor - Unplug DRM minor
* @minor: Minor to unplug
*
* Unplugs the given DRM minor but keeps the object. So after this returns,
* minor->dev is still valid so existing open-files can still access it to get
* device information from their drm_file ojects.
* If the minor is already unplugged or if @minor is NULL, nothing is done.
* The global DRM mutex must be held by the caller.
*/
static void drm_unplug_minor(struct drm_minor *minor)
{ {
struct drm_minor *minor;
minor = *drm_minor_get_slot(dev, type);
if (!minor || !minor->kdev) if (!minor || !minor->kdev)
return; return;
...@@ -448,11 +430,9 @@ EXPORT_SYMBOL(drm_put_dev); ...@@ -448,11 +430,9 @@ EXPORT_SYMBOL(drm_put_dev);
void drm_unplug_dev(struct drm_device *dev) void drm_unplug_dev(struct drm_device *dev)
{ {
/* for a USB device */ /* for a USB device */
if (drm_core_check_feature(dev, DRIVER_MODESET)) drm_minor_unregister(dev, DRM_MINOR_LEGACY);
drm_unplug_minor(dev->control); drm_minor_unregister(dev, DRM_MINOR_RENDER);
if (dev->render) drm_minor_unregister(dev, DRM_MINOR_CONTROL);
drm_unplug_minor(dev->render);
drm_unplug_minor(dev->primary);
mutex_lock(&drm_global_mutex); mutex_lock(&drm_global_mutex);
...@@ -623,15 +603,15 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags) ...@@ -623,15 +603,15 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
mutex_lock(&drm_global_mutex); mutex_lock(&drm_global_mutex);
ret = drm_get_minor(dev, DRM_MINOR_CONTROL); ret = drm_minor_register(dev, DRM_MINOR_CONTROL);
if (ret) if (ret)
goto err_minors; goto err_minors;
ret = drm_get_minor(dev, DRM_MINOR_RENDER); ret = drm_minor_register(dev, DRM_MINOR_RENDER);
if (ret) if (ret)
goto err_minors; goto err_minors;
ret = drm_get_minor(dev, DRM_MINOR_LEGACY); ret = drm_minor_register(dev, DRM_MINOR_LEGACY);
if (ret) if (ret)
goto err_minors; goto err_minors;
...@@ -656,9 +636,9 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags) ...@@ -656,9 +636,9 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
if (dev->driver->unload) if (dev->driver->unload)
dev->driver->unload(dev); dev->driver->unload(dev);
err_minors: err_minors:
drm_unplug_minor(dev->control); drm_minor_unregister(dev, DRM_MINOR_LEGACY);
drm_unplug_minor(dev->render); drm_minor_unregister(dev, DRM_MINOR_RENDER);
drm_unplug_minor(dev->primary); drm_minor_unregister(dev, DRM_MINOR_CONTROL);
out_unlock: out_unlock:
mutex_unlock(&drm_global_mutex); mutex_unlock(&drm_global_mutex);
return ret; return ret;
...@@ -690,8 +670,8 @@ void drm_dev_unregister(struct drm_device *dev) ...@@ -690,8 +670,8 @@ void drm_dev_unregister(struct drm_device *dev)
list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
drm_rmmap(dev, r_list->map); drm_rmmap(dev, r_list->map);
drm_unplug_minor(dev->control); drm_minor_unregister(dev, DRM_MINOR_LEGACY);
drm_unplug_minor(dev->render); drm_minor_unregister(dev, DRM_MINOR_RENDER);
drm_unplug_minor(dev->primary); drm_minor_unregister(dev, DRM_MINOR_CONTROL);
} }
EXPORT_SYMBOL(drm_dev_unregister); EXPORT_SYMBOL(drm_dev_unregister);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment