From 0594ffee9011e7e32b7ad92fe6d815e8727281f8 Mon Sep 17 00:00:00 2001
From: Lewis Huang <Lewis.Huang@amd.com>
Date: Tue, 27 Aug 2019 17:03:41 +0800
Subject: drm/amd/display: fix i2c wtire mot incorrect issue
Git-commit: 0594ffee9011e7e32b7ad92fe6d815e8727281f8
Patch-mainline: v5.5-rc1
References: bsc#1152489
[Why]
I2C write command always send mot = true will cause sink state incorrect.
[How]
1. Remove default i2c write mot = true.
2. Deciding mot flag by is_end_of_payload flag.
Signed-off-by: Lewis Huang <Lewis.Huang@amd.com>
Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
index e8f3ba9c5475..57fb0574f198 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c
@@ -525,7 +525,7 @@ bool dal_ddc_service_query_ddc_data(
if (write_size != 0) {
payload.write = true;
- payload.mot = true;
+ payload.mot = false;
payload.length = write_size;
payload.data = write_buf;
@@ -594,7 +594,7 @@ bool dal_ddc_submit_aux_command(struct ddc_service *ddc,
current_payload.i2c_over_aux = payload->i2c_over_aux;
current_payload.length = is_end_of_payload ?
payload->length - retrieved : DEFAULT_AUX_MAX_DATA_SIZE;
- current_payload.mot = payload->mot ? payload->mot : !is_end_of_payload;
+ current_payload.mot = !is_end_of_payload;
current_payload.reply = payload->reply;
current_payload.write = payload->write;
--
2.28.0