Commit e28cd4d0 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter

drm: Automatically register/unregister all connectors

As the drm_connector is now safe for multiple calls to
register/unregister, automatically perform a registration on all known
connectors drm drv_register (and unregister from drm_drv_unregister).
Drivers can still call drm_connector_register() and
drm_connector_unregister() individually, or defer as required.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1466151923-1572-2-git-send-email-chris@chris-wilson.co.uk
parent acd8f414
...@@ -1047,9 +1047,9 @@ EXPORT_SYMBOL(drm_connector_unregister); ...@@ -1047,9 +1047,9 @@ EXPORT_SYMBOL(drm_connector_unregister);
* @dev: drm device * @dev: drm device
* *
* This function registers all connectors in sysfs and other places so that * This function registers all connectors in sysfs and other places so that
* userspace can start to access them. Drivers can call it after calling * userspace can start to access them. drm_connector_register_all() is called
* drm_dev_register() to complete the device registration, if they don't call * automatically from drm_dev_register() to complete the device registration,
* drm_connector_register() on each connector individually. * if they don't call drm_connector_register() on each connector individually.
* *
* When a device is unplugged and should be removed from userspace access, * When a device is unplugged and should be removed from userspace access,
* call drm_connector_unregister_all(), which is the inverse of this * call drm_connector_unregister_all(), which is the inverse of this
......
...@@ -650,11 +650,7 @@ EXPORT_SYMBOL(drm_dev_unref); ...@@ -650,11 +650,7 @@ EXPORT_SYMBOL(drm_dev_unref);
* *
* Register the DRM device @dev with the system, advertise device to user-space * Register the DRM device @dev with the system, advertise device to user-space
* and start normal device operation. @dev must be allocated via drm_dev_alloc() * and start normal device operation. @dev must be allocated via drm_dev_alloc()
* previously. Right after drm_dev_register() the driver should call * previously.
* drm_connector_register_all() to register all connectors in sysfs. This is
* a separate call for backward compatibility with drivers still using
* the deprecated ->load() callback, where connectors are registered from within
* the ->load() callback.
* *
* Never call this twice on any device! * Never call this twice on any device!
* *
...@@ -691,6 +687,8 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags) ...@@ -691,6 +687,8 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
goto err_minors; goto err_minors;
} }
drm_connector_register_all(dev);
ret = 0; ret = 0;
goto out_unlock; goto out_unlock;
...@@ -721,6 +719,8 @@ void drm_dev_unregister(struct drm_device *dev) ...@@ -721,6 +719,8 @@ void drm_dev_unregister(struct drm_device *dev)
drm_lastclose(dev); drm_lastclose(dev);
drm_connector_unregister_all(dev);
if (dev->driver->unload) if (dev->driver->unload)
dev->driver->unload(dev); dev->driver->unload(dev);
......
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