Add validity check for samsung,lane-count to ensure DT-provided lane count values are specification-compliant.
Suggested-by: Luca Ceresoli <[email protected]> Signed-off-by: Damon Ding <[email protected]> --- Changes in v5: - Apply DRM DP helper API to check the validity of DP lane count. --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 5dc07ff84cd3..9300b0db8785 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1238,6 +1238,7 @@ static int analogix_dp_dt_parse_pdata(struct analogix_dp_device *dp) { struct device_node *dp_node = dp->dev->of_node; struct video_info *video_info = &dp->video_info; + int ret; switch (dp->plat_data->dev_type) { case RK3288_DP: @@ -1261,8 +1262,11 @@ static int analogix_dp_dt_parse_pdata(struct analogix_dp_device *dp) */ of_property_read_u32(dp_node, "samsung,link-rate", &video_info->max_link_rate); - of_property_read_u32(dp_node, "samsung,lane-count", - &video_info->max_lane_count); + ret = of_property_read_u32(dp_node, "samsung,lane-count", + &video_info->max_lane_count); + if (ret || !drm_dp_lane_count_is_valid(video_info->max_lane_count)) + return dev_err_probe(dp->dev, ret ? ret : -EINVAL, + "failed to parse samsung,lane-count\n"); break; } -- 2.34.1
