mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 10:32:54 +00:00
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
From 92c85bac95a139c996ef1c9a8047c717e4455d3f Mon Sep 17 00:00:00 2001
|
|
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
|
Date: Wed, 26 May 2021 15:23:52 +0400
|
|
Subject: [PATCH] baikal_vdu: figure out (LVDS) endpoint count
|
|
|
|
So the driver works correctly even when 'num-lanes' property is missing
|
|
in the device tree.
|
|
---
|
|
drivers/gpu/drm/baikal/baikal_vdu_drv.c | 9 ++++++++-
|
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/gpu/drm/baikal/baikal_vdu_drv.c b/drivers/gpu/drm/baikal/baikal_vdu_drv.c
|
|
index 8eb9dda7fa01..f7fb3b81a9f1 100644
|
|
--- a/drivers/gpu/drm/baikal/baikal_vdu_drv.c
|
|
+++ b/drivers/gpu/drm/baikal/baikal_vdu_drv.c
|
|
@@ -71,7 +71,7 @@ static int vdu_modeset_init(struct drm_device *dev)
|
|
struct drm_mode_config *mode_config;
|
|
struct baikal_vdu_private *priv = dev->dev_private;
|
|
struct arm_smccc_res res;
|
|
- int ret = 0;
|
|
+ int ret = 0, ep_count = 0;
|
|
|
|
if (priv == NULL)
|
|
return -EINVAL;
|
|
@@ -103,6 +103,12 @@ static int vdu_modeset_init(struct drm_device *dev)
|
|
dev_info(dev->dev, "Bridge probe deferred\n");
|
|
goto out_config;
|
|
}
|
|
+ ep_count = of_graph_get_endpoint_count(dev->dev->of_node);
|
|
+ if (ep_count <= 0) {
|
|
+ dev_err(dev->dev, "no endpoints connected to panel/bridge\n");
|
|
+ goto out_config;
|
|
+ }
|
|
+ priv->ep_count = ep_count;
|
|
|
|
if (priv->bridge) {
|
|
struct drm_encoder *encoder = &priv->encoder;
|
|
@@ -121,6 +127,7 @@ static int vdu_modeset_init(struct drm_device *dev)
|
|
goto out_config;
|
|
}
|
|
} else if (priv->panel) {
|
|
+ dev_dbg(dev->dev, "panel has %d endpoints\n", priv->ep_count);
|
|
ret = baikal_vdu_lvds_connector_create(dev);
|
|
if (ret) {
|
|
dev_err(dev->dev, "Failed to create DRM connector\n");
|
|
--
|
|
2.31.1
|
|
|