aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0610-drm-amd-dal-clean-MST-payload-hw-table-on-update.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0610-drm-amd-dal-clean-MST-payload-hw-table-on-update.patch')
-rw-r--r--common/recipes-kernel/linux/files/0610-drm-amd-dal-clean-MST-payload-hw-table-on-update.patch155
1 files changed, 0 insertions, 155 deletions
diff --git a/common/recipes-kernel/linux/files/0610-drm-amd-dal-clean-MST-payload-hw-table-on-update.patch b/common/recipes-kernel/linux/files/0610-drm-amd-dal-clean-MST-payload-hw-table-on-update.patch
deleted file mode 100644
index 986ce8cb..00000000
--- a/common/recipes-kernel/linux/files/0610-drm-amd-dal-clean-MST-payload-hw-table-on-update.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 65612b6c62b3271dcbf8bb112d0da22291e53ed6 Mon Sep 17 00:00:00 2001
-From: Mykola Lysenko <Mykola.Lysenko@amd.com>
-Date: Fri, 11 Dec 2015 20:12:41 +0800
-Subject: [PATCH 0610/1110] drm/amd/dal: clean MST payload hw table on update
-
-On each update of HW payloads table from SW it should be clean.
-Consider situation when configuration changes from 2 displays
-to 1. SW table contains 1 row. HW table contains 2 rows. Only 1st
-row updated.
-
-After this change HW table always consistent with SW
-
-Signed-off-by: Harry Wentland <harry.wentland@amd.com>
-Acked-by: Harry Wentland<harry.wentland@amd.com>
----
- .../drm/amd/dal/dc/dce110/dce110_link_encoder.c | 93 ++++++++++++++--------
- 1 file changed, 58 insertions(+), 35 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c
-index 3d902f3..8ddccdf 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c
-@@ -1637,17 +1637,22 @@ void dce110_link_encoder_update_mst_stream_allocation_table(
- {
- struct dce110_link_encoder *enc110 = TO_DCE110_LINK_ENC(enc);
- struct dc_context *ctx = enc110->base.ctx;
-- uint32_t value0;
-- uint32_t value1;
-+ uint32_t value0 = 0;
-+ uint32_t value1 = 0;
-+ uint32_t slots = 0;
-+ uint32_t src = 0;
- uint32_t retries = 0;
- struct core_stream *core_stream = NULL;
-
-+
- /* For CZ, there are only 3 pipes. So Virtual channel is up 3.*/
-
- /* --- Set MSE Stream Attribute -
- * Setup VC Payload Table on Tx Side,
- * Issue allocation change trigger
- * to commit payload on both tx and rx side */
-+
-+ /* we should clean-up table each time */
- value0 = dal_read_reg(ctx, DP_REG(mmDP_MSE_SAT0));
- value1 = dal_read_reg(ctx, DP_REG(mmDP_MSE_SAT1));
-
-@@ -1655,53 +1660,71 @@ void dce110_link_encoder_update_mst_stream_allocation_table(
- core_stream =
- DC_STREAM_TO_CORE(table->stream_allocations[0].stream);
-
-- set_reg_field_value(
-- value0,
-- core_stream->stream_enc->id,
-- DP_MSE_SAT0,
-- DP_MSE_SAT_SRC0);
--
-- set_reg_field_value(
-- value0,
-- table->stream_allocations[0].slot_count,
-- DP_MSE_SAT0,
-- DP_MSE_SAT_SLOT_COUNT0);
-+ src = core_stream->stream_enc->id;
-+ slots = table->stream_allocations[0].slot_count;
-+ } else {
-+ src = 0;
-+ slots = 0;
- }
-
-+ set_reg_field_value(
-+ value0,
-+ src,
-+ DP_MSE_SAT0,
-+ DP_MSE_SAT_SRC0);
-+
-+ set_reg_field_value(
-+ value0,
-+ slots,
-+ DP_MSE_SAT0,
-+ DP_MSE_SAT_SLOT_COUNT0);
-+
- if (table->stream_count >= 2) {
- core_stream =
- DC_STREAM_TO_CORE(table->stream_allocations[1].stream);
-
-- set_reg_field_value(
-- value0,
-- core_stream->stream_enc->id,
-- DP_MSE_SAT0,
-- DP_MSE_SAT_SRC1);
--
-- set_reg_field_value(
-- value0,
-- table->stream_allocations[1].slot_count,
-- DP_MSE_SAT0,
-- DP_MSE_SAT_SLOT_COUNT1);
-+ src = core_stream->stream_enc->id;
-+ slots = table->stream_allocations[1].slot_count;
-+ } else {
-+ src = 0;
-+ slots = 0;
- }
-
-+ set_reg_field_value(
-+ value0,
-+ src,
-+ DP_MSE_SAT0,
-+ DP_MSE_SAT_SRC1);
-+
-+ set_reg_field_value(
-+ value0,
-+ slots,
-+ DP_MSE_SAT0,
-+ DP_MSE_SAT_SLOT_COUNT1);
-+
- if (table->stream_count >= 3) {
- core_stream =
- DC_STREAM_TO_CORE(table->stream_allocations[2].stream);
-
-- set_reg_field_value(
-- value1,
-- core_stream->stream_enc->id,
-- DP_MSE_SAT1,
-- DP_MSE_SAT_SRC2);
--
-- set_reg_field_value(
-- value1,
-- table->stream_allocations[2].slot_count,
-- DP_MSE_SAT1,
-- DP_MSE_SAT_SLOT_COUNT2);
-+ src = core_stream->stream_enc->id;
-+ slots = table->stream_allocations[2].slot_count;
-+ } else {
-+ src = 0;
-+ slots = 0;
- }
-
-+ set_reg_field_value(
-+ value1,
-+ src,
-+ DP_MSE_SAT1,
-+ DP_MSE_SAT_SRC2);
-+
-+ set_reg_field_value(
-+ value1,
-+ slots,
-+ DP_MSE_SAT1,
-+ DP_MSE_SAT_SLOT_COUNT2);
-+
- /* update ASIC MSE stream allocation table */
- dal_write_reg(ctx, DP_REG(mmDP_MSE_SAT0), value0);
- dal_write_reg(ctx, DP_REG(mmDP_MSE_SAT1), value1);
---
-2.7.4
-