diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0542-drm-amd-dal-small-refactoring-in-DP-related-code.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0542-drm-amd-dal-small-refactoring-in-DP-related-code.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0542-drm-amd-dal-small-refactoring-in-DP-related-code.patch b/common/recipes-kernel/linux/files/0542-drm-amd-dal-small-refactoring-in-DP-related-code.patch new file mode 100644 index 00000000..4d1a5e40 --- /dev/null +++ b/common/recipes-kernel/linux/files/0542-drm-amd-dal-small-refactoring-in-DP-related-code.patch @@ -0,0 +1,81 @@ +From 4f1d9df2b807835c4c977392abcb0e65b2f51f46 Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +Date: Tue, 1 Dec 2015 18:26:31 +0800 +Subject: [PATCH 0542/1110] drm/amd/dal: small refactoring in DP related code + +Reuse regular DP code in MST case instead of duplication +Ident properly few places in link training code + +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c | 16 ++++++++-------- + drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c | 12 ++---------- + 2 files changed, 10 insertions(+), 18 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c +index 9214aec..71e6f8c 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_dp.c +@@ -1315,9 +1315,9 @@ static bool hpd_rx_irq_check_link_loss_status( + */ + + dpcd_result = core_link_read_dpcd(link, +- DPCD_ADDRESS_POWER_STATE, +- &irq_reg_rx_power_state, +- sizeof(irq_reg_rx_power_state)); ++ DPCD_ADDRESS_POWER_STATE, ++ &irq_reg_rx_power_state, ++ sizeof(irq_reg_rx_power_state)); + + if (dpcd_result != DC_OK) { + irq_reg_rx_power_state = DP_PWR_STATE_D0; +@@ -1333,15 +1333,15 @@ static bool hpd_rx_irq_check_link_loss_status( + /*2. Check that Link Status changed, before re-training.*/ + + /*parse lane status*/ +- for (lane = 0; lane < +- (uint32_t)(link->cur_link_settings.lane_count) && +- !sink_status_changed; lane++) { ++ for (lane = 0; ++ lane < link->cur_link_settings.lane_count; ++ lane++) { + + /* check status of lanes 0,1 + * changed DpcdAddress_Lane01Status (0x202)*/ + lane_status.raw = get_nibble_at_index( +- &hpd_irq_dpcd_data->bytes.lane01_status.raw, +- lane); ++ &hpd_irq_dpcd_data->bytes.lane01_status.raw, ++ lane); + + if (!lane_status.bits.CHANNEL_EQ_DONE_0 || + !lane_status.bits.CR_DONE_0 || +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c +index e7673ed..8ef4674 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c +@@ -95,18 +95,10 @@ void dp_disable_link_phy_mst(struct core_link *link, struct core_stream *stream) + } + } + /* MST disable link only when no stream use the link */ +- if (link->enabled_stream_count > 0) { ++ if (link->enabled_stream_count > 0) + return; +- } +- +- if (!link->dp_wa.bits.KEEP_RECEIVER_POWERED) +- dp_receiver_power_ctrl(link, false); + +- link->dc->hwss.encoder_disable_output(link->link_enc, stream->signal); +- +- /* Clear current link setting.*/ +- dc_service_memset(&link->cur_link_settings, 0, +- sizeof(link->cur_link_settings)); ++ dp_disable_link_phy(link, stream->signal); + } + + bool dp_set_hw_training_pattern( +-- +2.7.4 + |