Commit 396dc51b authored by Wayne Lin's avatar Wayne Lin Committed by Alex Deucher
Browse files

drm/amd/display: Remove incorrect checking in dmub aux handler



[Why & How]
"Request length != reply length" is expected behavior defined in spec.
It's not an invalid reply. Besides, replied data handling logic is not
designed to be written in amdgpu_dm_process_dmub_aux_transfer_sync().
Remove the incorrectly handling section.

Fixes: ead08b95 ("drm/amd/display: Fix race condition in DPIA AUX transfer")
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarRay Wu <ray.wu@amd.com>
Signed-off-by: default avatarWayne Lin <Wayne.Lin@amd.com>
Signed-off-by: default avatarRay Wu <ray.wu@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 81b5c6fa)
Cc: stable@vger.kernel.org
parent bc70e11b
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -12764,19 +12764,9 @@ int amdgpu_dm_process_dmub_aux_transfer_sync(
		payload->reply[0] = (adev->dm.dmub_notify->aux_reply.command >> 4) & 0xF;

	if (!payload->write && p_notify->aux_reply.length &&
			(payload->reply[0] == AUX_TRANSACTION_REPLY_AUX_ACK)) {

		if (payload->length != p_notify->aux_reply.length) {
			DRM_WARN("invalid read length %d from DPIA AUX 0x%x(%d)!\n",
				p_notify->aux_reply.length,
					payload->address, payload->length);
			*operation_result = AUX_RET_ERROR_INVALID_REPLY;
			goto out;
		}

			(payload->reply[0] == AUX_TRANSACTION_REPLY_AUX_ACK))
		memcpy(payload->data, p_notify->aux_reply.data,
				p_notify->aux_reply.length);
	}

	/* success */
	ret = p_notify->aux_reply.length;