|
@@ -927,6 +927,16 @@ radeon_lvds_detect(struct drm_connector *connector, bool force)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void radeon_connector_unregister(struct drm_connector *connector)
|
|
|
|
+{
|
|
|
|
+ struct radeon_connector *radeon_connector = to_radeon_connector(connector);
|
|
|
|
+
|
|
|
|
+ if (radeon_connector->ddc_bus->has_aux) {
|
|
|
|
+ drm_dp_aux_unregister(&radeon_connector->ddc_bus->aux);
|
|
|
|
+ radeon_connector->ddc_bus->has_aux = false;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
static void radeon_connector_destroy(struct drm_connector *connector)
|
|
static void radeon_connector_destroy(struct drm_connector *connector)
|
|
{
|
|
{
|
|
struct radeon_connector *radeon_connector = to_radeon_connector(connector);
|
|
struct radeon_connector *radeon_connector = to_radeon_connector(connector);
|
|
@@ -984,6 +994,7 @@ static const struct drm_connector_funcs radeon_lvds_connector_funcs = {
|
|
.dpms = drm_helper_connector_dpms,
|
|
.dpms = drm_helper_connector_dpms,
|
|
.detect = radeon_lvds_detect,
|
|
.detect = radeon_lvds_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.set_property = radeon_lvds_set_property,
|
|
.set_property = radeon_lvds_set_property,
|
|
};
|
|
};
|
|
@@ -1111,6 +1122,7 @@ static const struct drm_connector_funcs radeon_vga_connector_funcs = {
|
|
.dpms = drm_helper_connector_dpms,
|
|
.dpms = drm_helper_connector_dpms,
|
|
.detect = radeon_vga_detect,
|
|
.detect = radeon_vga_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.set_property = radeon_connector_set_property,
|
|
.set_property = radeon_connector_set_property,
|
|
};
|
|
};
|
|
@@ -1188,6 +1200,7 @@ static const struct drm_connector_funcs radeon_tv_connector_funcs = {
|
|
.dpms = drm_helper_connector_dpms,
|
|
.dpms = drm_helper_connector_dpms,
|
|
.detect = radeon_tv_detect,
|
|
.detect = radeon_tv_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.set_property = radeon_connector_set_property,
|
|
.set_property = radeon_connector_set_property,
|
|
};
|
|
};
|
|
@@ -1519,6 +1532,7 @@ static const struct drm_connector_funcs radeon_dvi_connector_funcs = {
|
|
.detect = radeon_dvi_detect,
|
|
.detect = radeon_dvi_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.set_property = radeon_connector_set_property,
|
|
.set_property = radeon_connector_set_property,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.force = radeon_dvi_force,
|
|
.force = radeon_dvi_force,
|
|
};
|
|
};
|
|
@@ -1832,6 +1846,7 @@ static const struct drm_connector_funcs radeon_dp_connector_funcs = {
|
|
.detect = radeon_dp_detect,
|
|
.detect = radeon_dp_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.set_property = radeon_connector_set_property,
|
|
.set_property = radeon_connector_set_property,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.force = radeon_dvi_force,
|
|
.force = radeon_dvi_force,
|
|
};
|
|
};
|
|
@@ -1841,6 +1856,7 @@ static const struct drm_connector_funcs radeon_edp_connector_funcs = {
|
|
.detect = radeon_dp_detect,
|
|
.detect = radeon_dp_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.set_property = radeon_lvds_set_property,
|
|
.set_property = radeon_lvds_set_property,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.force = radeon_dvi_force,
|
|
.force = radeon_dvi_force,
|
|
};
|
|
};
|
|
@@ -1850,6 +1866,7 @@ static const struct drm_connector_funcs radeon_lvds_bridge_connector_funcs = {
|
|
.detect = radeon_dp_detect,
|
|
.detect = radeon_dp_detect,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.fill_modes = drm_helper_probe_single_connector_modes,
|
|
.set_property = radeon_lvds_set_property,
|
|
.set_property = radeon_lvds_set_property,
|
|
|
|
+ .early_unregister = radeon_connector_unregister,
|
|
.destroy = radeon_connector_destroy,
|
|
.destroy = radeon_connector_destroy,
|
|
.force = radeon_dvi_force,
|
|
.force = radeon_dvi_force,
|
|
};
|
|
};
|