drm/amd/display: Copy AUX read reply data whenever length > 0
authorWayne Lin <Wayne.Lin@amd.com>
Sun, 20 Apr 2025 09:50:03 +0000 (17:50 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 7 May 2025 22:20:24 +0000 (18:20 -0400)
[Why]
amdgpu_dm_process_dmub_aux_transfer_sync() should return all exact data
reply from the sink side. Don't do the analysis job in it.

[How]
Remove unnecessary check condition AUX_TRANSACTION_REPLY_AUX_ACK.

Fixes: ead08b95fa50 ("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: Ray Wu <ray.wu@amd.com>
Signed-off-by: Wayne Lin <Wayne.Lin@amd.com>
Signed-off-by: Ray Wu <ray.wu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 9b540e3fe6796fec4fb1344f3be8952fc2f084d4)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index d63f219de88ec2d7f8ca804e5fdb4ec5ba5380c9..64df8ca448b3b859dc0b2b755afcc23ad929ca6b 100644 (file)
@@ -12763,8 +12763,7 @@ int amdgpu_dm_process_dmub_aux_transfer_sync(
                /* The reply is stored in the top nibble of the command. */
                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->write && p_notify->aux_reply.length)
                memcpy(payload->data, p_notify->aux_reply.data,
                                p_notify->aux_reply.length);