浏览代码

disp: msm: dp: use extended DPCD fields to configure dp link rate

Use the EXTENDED_RECEIVER_CAPABILITY DPCD register fields,
if present, for enabling HBR3 link rate on supported targets.

CRs-Fixed: 2438457
Change-Id: I505d998f31f79162dc290fc47fd9fbba51527982
Signed-off-by: Ajay Singh Parmar <[email protected]>
Ajay Singh Parmar 6 年之前
父节点
当前提交
76837da1a9
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      msm/dp/dp_panel.c

+ 7 - 1
msm/dp/dp_panel.c

@@ -1663,12 +1663,15 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel, bool multi_func)
 		panel->vscext_chaining_supported);
 
 skip_dpcd_read:
+	link_info->revision = dpcd[DP_DPCD_REV];
 	panel->major = (link_info->revision >> 4) & 0x0f;
 	panel->minor = link_info->revision & 0x0f;
 
 	/* override link params updated in dp_panel_init_panel_info */
 	link_info->rate = min_t(unsigned long, panel->parser->max_lclk_khz,
-				link_info->rate);
+			drm_dp_bw_code_to_link_rate(dpcd[DP_MAX_LINK_RATE]));
+
+	link_info->num_lanes = dpcd[DP_MAX_LANE_COUNT] & DP_MAX_LANE_COUNT_MASK;
 
 	if (multi_func)
 		link_info->num_lanes = min_t(unsigned int,
@@ -1677,6 +1680,9 @@ skip_dpcd_read:
 	pr_debug("version:%d.%d, rate:%d, lanes:%d\n", panel->major,
 		panel->minor, link_info->rate, link_info->num_lanes);
 
+	if (drm_dp_enhanced_frame_cap(dpcd))
+		link_info->capabilities |= DP_LINK_CAP_ENHANCED_FRAMING;
+
 	dfp_count = dpcd[DP_DOWN_STREAM_PORT_COUNT] &
 						DP_DOWN_STREAM_PORT_COUNT;