mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
drm/amd/display: Use _free() macro for amdgpu_dm_update_connector_after_detect()
By using a _free() macro multiple duplicated snippets of code to free the sink can be dropped. The sink will be released when leaving scope. Reviewed-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Wayne Lin <wayne.lin@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
aca9ec9b05
commit
981a47429e
@@ -3654,12 +3654,14 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector)
|
||||
caps->min_input_signal = min_input_signal_override;
|
||||
}
|
||||
|
||||
DEFINE_FREE(sink_release, struct dc_sink *, if (_T) dc_sink_release(_T))
|
||||
|
||||
void amdgpu_dm_update_connector_after_detect(
|
||||
struct amdgpu_dm_connector *aconnector)
|
||||
{
|
||||
struct drm_connector *connector = &aconnector->base;
|
||||
struct dc_sink *sink __free(sink_release) = NULL;
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct dc_sink *sink;
|
||||
|
||||
/* MST handled by drm_mst framework */
|
||||
if (aconnector->mst_mgr.mst_state == true)
|
||||
@@ -3706,8 +3708,6 @@ void amdgpu_dm_update_connector_after_detect(
|
||||
}
|
||||
}
|
||||
|
||||
if (sink)
|
||||
dc_sink_release(sink);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3715,10 +3715,8 @@ void amdgpu_dm_update_connector_after_detect(
|
||||
* TODO: temporary guard to look for proper fix
|
||||
* if this sink is MST sink, we should not do anything
|
||||
*/
|
||||
if (sink && sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT_MST) {
|
||||
dc_sink_release(sink);
|
||||
if (sink && sink->sink_signal == SIGNAL_TYPE_DISPLAY_PORT_MST)
|
||||
return;
|
||||
}
|
||||
|
||||
if (aconnector->dc_sink == sink) {
|
||||
/*
|
||||
@@ -3727,8 +3725,6 @@ void amdgpu_dm_update_connector_after_detect(
|
||||
*/
|
||||
drm_dbg_kms(dev, "DCHPD: connector_id=%d: dc_sink didn't change.\n",
|
||||
aconnector->connector_id);
|
||||
if (sink)
|
||||
dc_sink_release(sink);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3798,9 +3794,6 @@ void amdgpu_dm_update_connector_after_detect(
|
||||
}
|
||||
|
||||
update_subconnector_property(aconnector);
|
||||
|
||||
if (sink)
|
||||
dc_sink_release(sink);
|
||||
}
|
||||
|
||||
static void handle_hpd_irq_helper(struct amdgpu_dm_connector *aconnector)
|
||||
|
||||
Reference in New Issue
Block a user