drm/i915: add a common connector type independent destroy hook
Almost all of the connector destroy functions do the same thing. The
differences are in the edid, detect_edid and panel cleanups, but those
are safely NULL when not initialized. Roll out a common connector
destroy hook.
Inspired by commit bc3213c444
("drm/i915: Drop the eDP check from
intel_dp_connector_destroy()").
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181009141103.20387-1-jani.nikula@intel.com
This commit is contained in:
@@ -2058,14 +2058,6 @@ static int intel_sdvo_get_modes(struct drm_connector *connector)
|
||||
return !list_empty(&connector->probed_modes);
|
||||
}
|
||||
|
||||
static void intel_sdvo_destroy(struct drm_connector *connector)
|
||||
{
|
||||
struct intel_sdvo_connector *intel_sdvo_connector = to_intel_sdvo_connector(connector);
|
||||
|
||||
drm_connector_cleanup(connector);
|
||||
kfree(intel_sdvo_connector);
|
||||
}
|
||||
|
||||
static int
|
||||
intel_sdvo_connector_atomic_get_property(struct drm_connector *connector,
|
||||
const struct drm_connector_state *state,
|
||||
@@ -2228,7 +2220,7 @@ static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
|
||||
.atomic_set_property = intel_sdvo_connector_atomic_set_property,
|
||||
.late_register = intel_sdvo_connector_register,
|
||||
.early_unregister = intel_sdvo_connector_unregister,
|
||||
.destroy = intel_sdvo_destroy,
|
||||
.destroy = intel_connector_destroy,
|
||||
.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
|
||||
.atomic_duplicate_state = intel_sdvo_connector_duplicate_state,
|
||||
};
|
||||
@@ -2583,7 +2575,7 @@ intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, int type)
|
||||
return true;
|
||||
|
||||
err:
|
||||
intel_sdvo_destroy(connector);
|
||||
intel_connector_destroy(connector);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2675,7 +2667,7 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device)
|
||||
return true;
|
||||
|
||||
err:
|
||||
intel_sdvo_destroy(connector);
|
||||
intel_connector_destroy(connector);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2745,7 +2737,7 @@ static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo)
|
||||
&dev->mode_config.connector_list, head) {
|
||||
if (intel_attached_encoder(connector) == &intel_sdvo->base) {
|
||||
drm_connector_unregister(connector);
|
||||
intel_sdvo_destroy(connector);
|
||||
intel_connector_destroy(connector);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user