From 76837da1a9d0b693e81e26ff873018512605eb42 Mon Sep 17 00:00:00 2001 From: Ajay Singh Parmar Date: Wed, 8 May 2019 22:04:11 -0700 Subject: [PATCH] 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 --- msm/dp/dp_panel.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/msm/dp/dp_panel.c b/msm/dp/dp_panel.c index 2862ca59ff..ffba27e0f7 100644 --- a/msm/dp/dp_panel.c +++ b/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;