aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3835-drm-amd-display-fix-i2c-wtire-mot-incorrect-issue.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3835-drm-amd-display-fix-i2c-wtire-mot-incorrect-issue.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3835-drm-amd-display-fix-i2c-wtire-mot-incorrect-issue.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3835-drm-amd-display-fix-i2c-wtire-mot-incorrect-issue.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3835-drm-amd-display-fix-i2c-wtire-mot-incorrect-issue.patch
new file mode 100644
index 00000000..579c8ac3
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3835-drm-amd-display-fix-i2c-wtire-mot-incorrect-issue.patch
@@ -0,0 +1,44 @@
+From 5e3ca7c1893246f537cb3aca8d6296ae9a7a23f2 Mon Sep 17 00:00:00 2001
+From: Lewis Huang <Lewis.Huang@amd.com>
+Date: Tue, 27 Aug 2019 17:03:41 +0800
+Subject: [PATCH 3835/4256] drm/amd/display: fix i2c wtire mot incorrect issue
+
+[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>
+---
+ 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 f70137d67c82..588a07b525a0 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
+@@ -523,7 +523,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;
+
+@@ -592,7 +592,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.17.1
+