1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
From b0993bf255b385739d5de13d12bc00a0528d5c49 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 1107/1565] 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
Change-Id: Ie4d7fa585e0990f6ed332f45c0e085b96ea95fde
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(
--
1.9.1
|