aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0053-drm-amd-display-add-retimer-log-for-HWQ-tuning-use.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0053-drm-amd-display-add-retimer-log-for-HWQ-tuning-use.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0053-drm-amd-display-add-retimer-log-for-HWQ-tuning-use.patch249
1 files changed, 249 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0053-drm-amd-display-add-retimer-log-for-HWQ-tuning-use.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0053-drm-amd-display-add-retimer-log-for-HWQ-tuning-use.patch
new file mode 100644
index 00000000..c38c520c
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0053-drm-amd-display-add-retimer-log-for-HWQ-tuning-use.patch
@@ -0,0 +1,249 @@
+From 53dd95fffb244d2c14ab89e442c19115e83244fd Mon Sep 17 00:00:00 2001
+From: Charlene Liu <charlene.liu@amd.com>
+Date: Tue, 31 Jul 2018 20:14:26 -0400
+Subject: [PATCH 0053/2940] drm/amd/display: add retimer log for HWQ tuning
+ use.
+
+Signed-off-by: Charlene Liu <charlene.liu@amd.com>
+Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link.c | 59 +++++++++++++++++++
+ .../drm/amd/display/include/logger_types.h | 3 +-
+ 2 files changed, 61 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+index fced3c1c2ef5..2c875a9ed832 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+@@ -54,6 +54,9 @@
+ DC_LOG_HW_HOTPLUG( \
+ __VA_ARGS__)
+
++#define RETIMER_REDRIVER_INFO(...) \
++ DC_LOG_RETIMER_REDRIVER( \
++ __VA_ARGS__)
+ /*******************************************************************************
+ * Private structures
+ ******************************************************************************/
+@@ -1551,6 +1554,7 @@ static void write_i2c_retimer_setting(
+ uint8_t value = 0;
+ int i = 0;
+ bool i2c_success = false;
++ DC_LOGGER_INIT(pipe_ctx->stream->ctx->logger);
+
+ memset(&buffer, 0, sizeof(buffer));
+
+@@ -1564,6 +1568,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = settings->reg_settings[i].i2c_reg_val;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_address = 0x%x,\
++ offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+
+ if (!i2c_success)
+ /* Write failure */
+@@ -1594,6 +1601,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = value | apply_rx_tx_change;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_address = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1611,6 +1621,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = settings->reg_settings_6g[i].i2c_reg_val;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("above 340Mhz: retimer write to slave_address = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+
+ if (!i2c_success)
+ /* Write failure */
+@@ -1641,6 +1654,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = value | apply_rx_tx_change;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_address = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1657,6 +1673,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = 0x01;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_address = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1666,6 +1685,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = 0x23;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_address = 0x%x,\
++ offset = 0x%d, reg_val = 0x%d, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1675,6 +1697,9 @@ static void write_i2c_retimer_setting(
+ buffer[1] = 0x00;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_address = 0x%x,\
++ offset = 0x%d, reg_val = 0x%d, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1690,6 +1715,7 @@ static void write_i2c_default_retimer_setting(
+ uint8_t slave_address = (0xBA >> 1);
+ uint8_t buffer[2];
+ bool i2c_success = false;
++ DC_LOGGER_INIT(pipe_ctx->stream->ctx->logger);
+
+ memset(&buffer, 0, sizeof(buffer));
+
+@@ -1699,6 +1725,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x13;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer writes default setting to slave_address = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1708,6 +1737,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x17;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1717,6 +1749,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = is_over_340mhz ? 0xDA : 0xD8;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1726,6 +1761,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x17;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1735,6 +1773,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = is_over_340mhz ? 0x1D : 0x91;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1744,6 +1785,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x17;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1757,6 +1801,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x01;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val = 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1766,6 +1813,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x23;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val= 0x%x, i2c_success = %d\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1775,6 +1825,9 @@ static void write_i2c_default_retimer_setting(
+ buffer[1] = 0x00;
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("retimer write default setting to slave_addr = 0x%x,\
++ offset = 0x%x, reg_val= 0x%x, i2c_success = %d end here\n",
++ slave_address, buffer[0], buffer[1], i2c_success?1:0);
+ if (!i2c_success)
+ /* Write failure */
+ ASSERT(i2c_success);
+@@ -1788,6 +1841,7 @@ static void write_i2c_redriver_setting(
+ uint8_t slave_address = (0xF0 >> 1);
+ uint8_t buffer[16];
+ bool i2c_success = false;
++ DC_LOGGER_INIT(pipe_ctx->stream->ctx->logger);
+
+ memset(&buffer, 0, sizeof(buffer));
+
+@@ -1799,6 +1853,11 @@ static void write_i2c_redriver_setting(
+
+ i2c_success = i2c_write(pipe_ctx, slave_address,
+ buffer, sizeof(buffer));
++ RETIMER_REDRIVER_INFO("redriver write 0 to all 16 reg offset expect following:\n\
++ \t slave_addr = 0x%x, offset[3] = 0x%x, offset[4] = 0x%x,\
++ offset[5] = 0x%x,offset[6] is_over_340mhz = 0x%x,\
++ i2c_success = %d\n",
++ slave_address, buffer[3], buffer[4], buffer[5], buffer[6], i2c_success?1:0);
+
+ if (!i2c_success)
+ /* Write failure */
+diff --git a/drivers/gpu/drm/amd/display/include/logger_types.h b/drivers/gpu/drm/amd/display/include/logger_types.h
+index ad3695e67b76..bc5732668092 100644
+--- a/drivers/gpu/drm/amd/display/include/logger_types.h
++++ b/drivers/gpu/drm/amd/display/include/logger_types.h
+@@ -62,6 +62,7 @@
+ #define DC_LOG_EVENT_UNDERFLOW(...) DRM_DEBUG_KMS(__VA_ARGS__)
+ #define DC_LOG_IF_TRACE(...) pr_debug("[IF_TRACE]:"__VA_ARGS__)
+ #define DC_LOG_PERF_TRACE(...) DRM_DEBUG_KMS(__VA_ARGS__)
++#define DC_LOG_RETIMER_REDRIVER(...) DRM_DEBUG_KMS(__VA_ARGS__)
+
+ struct dal_logger;
+
+@@ -99,7 +100,7 @@ enum dc_log_type {
+ LOG_IF_TRACE,
+ LOG_PERF_TRACE,
+ LOG_DISPLAYSTATS,
+-
++ LOG_HDMI_RETIMER_REDRIVER,
+ LOG_SECTION_TOTAL_COUNT
+ };
+
+--
+2.17.1
+