summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart2018-03-07 19:34:42 +0100
committerTomi Valkeinen2018-09-03 15:13:25 +0200
commit8023651bd3d9372779be731a1165058cd33b454e (patch)
treeb3c19b8cec703830fa815c2d7ceb68eb6806e710
parentdrm/omap: dss: Move platform_device_register from core.c to dss.c probe (diff)
downloadkernel-qcow2-linux-8023651bd3d9372779be731a1165058cd33b454e.tar.gz
kernel-qcow2-linux-8023651bd3d9372779be731a1165058cd33b454e.tar.xz
kernel-qcow2-linux-8023651bd3d9372779be731a1165058cd33b454e.zip
drm/omap: dss: Handle DPI and SDI port initialization failures
The dpi_init_port() and sdi_init_port() functions can return errors but their return value is ignored. This prevents both probe failures and probe deferral from working correctly. Propagate the errors up the call stack. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dss.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
index 64479b209c1f..55d837983a1e 100644
--- a/drivers/gpu/drm/omapdrm/dss/dss.c
+++ b/drivers/gpu/drm/omapdrm/dss/dss.c
@@ -1183,7 +1183,8 @@ static int dss_init_ports(struct dss_device *dss)
struct platform_device *pdev = dss->pdev;
struct device_node *parent = pdev->dev.of_node;
struct device_node *port;
- int i;
+ unsigned int i;
+ int r;
for (i = 0; i < dss->feat->num_ports; i++) {
port = of_graph_get_port_by_id(parent, i);
@@ -1192,11 +1193,17 @@ static int dss_init_ports(struct dss_device *dss)
switch (dss->feat->ports[i]) {
case OMAP_DISPLAY_TYPE_DPI:
- dpi_init_port(dss, pdev, port, dss->feat->model);
+ r = dpi_init_port(dss, pdev, port, dss->feat->model);
+ if (r)
+ return r;
break;
+
case OMAP_DISPLAY_TYPE_SDI:
- sdi_init_port(dss, pdev, port);
+ r = sdi_init_port(dss, pdev, port);
+ if (r)
+ return r;
break;
+
default:
break;
}