|
@@ -990,13 +990,24 @@ int drm_connector_register(struct drm_connector *connector)
|
|
|
|
|
|
ret = drm_debugfs_connector_add(connector);
|
|
ret = drm_debugfs_connector_add(connector);
|
|
if (ret) {
|
|
if (ret) {
|
|
- drm_sysfs_connector_remove(connector);
|
|
|
|
- return ret;
|
|
|
|
|
|
+ goto err_sysfs;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (connector->funcs->late_register) {
|
|
|
|
+ ret = connector->funcs->late_register(connector);
|
|
|
|
+ if (ret)
|
|
|
|
+ goto err_debugfs;
|
|
}
|
|
}
|
|
|
|
|
|
drm_mode_object_register(connector->dev, &connector->base);
|
|
drm_mode_object_register(connector->dev, &connector->base);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
|
+
|
|
|
|
+err_debugfs:
|
|
|
|
+ drm_debugfs_connector_remove(connector);
|
|
|
|
+err_sysfs:
|
|
|
|
+ drm_sysfs_connector_remove(connector);
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(drm_connector_register);
|
|
EXPORT_SYMBOL(drm_connector_register);
|
|
|
|
|
|
@@ -1008,6 +1019,9 @@ EXPORT_SYMBOL(drm_connector_register);
|
|
*/
|
|
*/
|
|
void drm_connector_unregister(struct drm_connector *connector)
|
|
void drm_connector_unregister(struct drm_connector *connector)
|
|
{
|
|
{
|
|
|
|
+ if (connector->funcs->early_unregister)
|
|
|
|
+ connector->funcs->early_unregister(connector);
|
|
|
|
+
|
|
drm_sysfs_connector_remove(connector);
|
|
drm_sysfs_connector_remove(connector);
|
|
drm_debugfs_connector_remove(connector);
|
|
drm_debugfs_connector_remove(connector);
|
|
}
|
|
}
|