|
@@ -627,6 +627,8 @@ static void analogix_dp_get_max_rx_bandwidth(struct analogix_dp_device *dp,
|
|
|
/*
|
|
|
* For DP rev.1.1, Maximum link rate of Main Link lanes
|
|
|
* 0x06 = 1.62 Gbps, 0x0a = 2.7 Gbps
|
|
|
+ * For DP rev.1.2, Maximum link rate of Main Link lanes
|
|
|
+ * 0x06 = 1.62 Gbps, 0x0a = 2.7 Gbps, 0x14 = 5.4Gbps
|
|
|
*/
|
|
|
analogix_dp_read_byte_from_dpcd(dp, DP_MAX_LINK_RATE, &data);
|
|
|
*bandwidth = data;
|
|
@@ -647,7 +649,7 @@ static void analogix_dp_get_max_rx_lane_count(struct analogix_dp_device *dp,
|
|
|
|
|
|
static void analogix_dp_init_training(struct analogix_dp_device *dp,
|
|
|
enum link_lane_count_type max_lane,
|
|
|
- enum link_rate_type max_rate)
|
|
|
+ int max_rate)
|
|
|
{
|
|
|
/*
|
|
|
* MACRO_RST must be applied after the PLL_LOCK to avoid
|
|
@@ -659,11 +661,12 @@ static void analogix_dp_init_training(struct analogix_dp_device *dp,
|
|
|
analogix_dp_get_max_rx_bandwidth(dp, &dp->link_train.link_rate);
|
|
|
analogix_dp_get_max_rx_lane_count(dp, &dp->link_train.lane_count);
|
|
|
|
|
|
- if ((dp->link_train.link_rate != LINK_RATE_1_62GBPS) &&
|
|
|
- (dp->link_train.link_rate != LINK_RATE_2_70GBPS)) {
|
|
|
+ if ((dp->link_train.link_rate != DP_LINK_BW_1_62) &&
|
|
|
+ (dp->link_train.link_rate != DP_LINK_BW_2_7) &&
|
|
|
+ (dp->link_train.link_rate != DP_LINK_BW_5_4)) {
|
|
|
dev_err(dp->dev, "Rx Max Link Rate is abnormal :%x !\n",
|
|
|
dp->link_train.link_rate);
|
|
|
- dp->link_train.link_rate = LINK_RATE_1_62GBPS;
|
|
|
+ dp->link_train.link_rate = DP_LINK_BW_1_62;
|
|
|
}
|
|
|
|
|
|
if (dp->link_train.lane_count == 0) {
|
|
@@ -901,9 +904,6 @@ static void analogix_dp_commit(struct analogix_dp_device *dp)
|
|
|
analogix_dp_enable_rx_to_enhanced_mode(dp, 1);
|
|
|
analogix_dp_enable_enhanced_mode(dp, 1);
|
|
|
|
|
|
- analogix_dp_set_lane_count(dp, dp->video_info->lane_count);
|
|
|
- analogix_dp_set_link_bandwidth(dp, dp->video_info->link_rate);
|
|
|
-
|
|
|
analogix_dp_init_video(dp);
|
|
|
ret = analogix_dp_config_video(dp);
|
|
|
if (ret)
|