[PATCH v4 2/3] drm/bridge: analogix_dp: Add validation for samsung,lane-count property
Damon Ding
damon.ding at rock-chips.com
Thu May 28 21:05:29 PDT 2026
Add range check for samsung,lane-count to avoid invalid values.
Validation is only applied when the property exists to maintain
backward compatibility.
Suggested-by: Luca Ceresoli <luca.ceresoli at bootlin.com>
Signed-off-by: Damon Ding <damon.ding at rock-chips.com>
---
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 13 +++++++++++--
1 file changed, 11 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 8cf6b73bceac..699a7f380c56 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:
@@ -1260,8 +1261,16 @@ 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) {
+ if (video_info->max_lane_count == 0 ||
+ video_info->max_lane_count > LANE_COUNT4) {
+ dev_err(dp->dev, "samsung,lane-count = %d is out of range\n",
+ video_info->max_lane_count);
+ return -EINVAL;
+ }
+ }
break;
}
--
2.34.1
More information about the Linux-rockchip
mailing list