Commit b86e7eef authored by Nikola Cornij's avatar Nikola Cornij Committed by Alex Deucher
Browse files

drm/amd/display: Avoid gpio conflict on MST branch



[Why]
Similar to SST branch, gpio conflict also needs to be avoided on
MST. Without doing so, there is a chance that gpio conflict will
occur if multiple gpio interrupts arrive simultaneously.

[How]
By mutex locking/unlocking &aconnector->hpd_lock,
we won't get gpio conflict when handling hpd.

Signed-off-by: default avatarZhan Liu <zhan.liu@amd.com>
Signed-off-by: default avatarNikola Cornij <nikola.cornij@amd.com>
Reviewed-by: default avatarBhawanpreet Lakha <bhawanpreet.lakha@amd.com>
Acked-by: default avatarZhan Liu <zhan.liu@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent df0a271c
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -2708,7 +2708,6 @@ static void handle_hpd_rx_irq(void *param)
	 * conflict, after implement i2c helper, this mutex should be
	 * retired.
	 */
	if (dc_link->type != dc_connection_mst_branch)
	mutex_lock(&aconnector->hpd_lock);

	read_hpd_rx_irq_data(dc_link, &hpd_irq_data);
@@ -2778,11 +2777,11 @@ static void handle_hpd_rx_irq(void *param)
	}
#endif

	if (dc_link->type != dc_connection_mst_branch) {
	if (dc_link->type != dc_connection_mst_branch)
		drm_dp_cec_irq(&aconnector->dm_dp_aux.aux);

	mutex_unlock(&aconnector->hpd_lock);
}
}

static void register_hpd_handlers(struct amdgpu_device *adev)
{