From: Wayne Lin <wayne....@amd.com>

[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: ead08b95fa50 ("drm/amd/display: Fix race condition in DPIA AUX transfer")
Cc: sta...@vger.kernel.org
Reviewed-by: Ray Wu <ray...@amd.com>
Signed-off-by: Wayne Lin <wayne....@amd.com>
Signed-off-by: Ray Wu <ray...@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index ae71ff3d87a7..d9c18e0f7395 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -12858,19 +12858,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(adev_to_drm(adev), "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;
-- 
2.43.0

Reply via email to