drm/bridge: analogix_dp: Support max_link_rate limit

Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I704987e5a20402b451d0d8a0a0d7e0ae1649be25
This commit is contained in:
Wyon Bi
2022-08-02 01:13:27 +00:00
parent 0689f8c244
commit 66fee6290f

View File

@@ -1927,6 +1927,7 @@ static int analogix_dp_dt_parse_pdata(struct analogix_dp_device *dp)
struct video_info *video_info = &dp->video_info;
struct property *prop;
int ret, len, num_lanes;
u32 max_link_rate;
switch (dp->plat_data->dev_type) {
case RK3288_DP:
@@ -1955,6 +1956,25 @@ static int analogix_dp_dt_parse_pdata(struct analogix_dp_device *dp)
break;
}
if (!of_property_read_u32(dp_node, "max-link-rate", &max_link_rate)) {
switch (max_link_rate) {
case 1620:
case 2700:
case 5400:
break;
default:
dev_err(dp->dev, "invalid max-link-rate value: %d\n",
max_link_rate);
return -EINVAL;
}
max_link_rate *= 100;
if (max_link_rate < drm_dp_bw_code_to_link_rate(video_info->max_link_rate))
video_info->max_link_rate =
drm_dp_link_rate_to_bw_code(max_link_rate);
}
video_info->video_bist_enable =
of_property_read_bool(dp_node, "analogix,video-bist-enable");