diff options
author | Boris Brezillon <boris.brezillon@bootlin.com> | 2018-05-09 09:00:39 -0400 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2018-07-10 11:59:05 -0400 |
commit | 5fa8e4a22182df8ea39adeba4bd518506e26a96d (patch) | |
tree | 4b9a3df577632f7c2165ea86d4d98f2cb5018266 | |
parent | 0ca0c827efdf248dfb4bbd4b9066acb6337e07ac (diff) |
drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL
Right now, the DRM panel logic returns NULL when a panel pointing to
the passed OF node is not present in the list of registered panels.
Most drivers interpret this NULL value as -EPROBE_DEFER, but we are
about to modify the semantic of of_drm_find_panel() and let the
framework return -ENODEV when the device node we're pointing to has
a status property that is not equal to "okay" or "ok".
Let's first patch the of_drm_find_panel() implementation to return
ERR_PTR(-EPROBE_DEFER) instead of NULL and patch all callers to replace
the '!panel' check by an 'IS_ERR(panel)' one.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180509130042.9435-2-boris.brezillon@bootlin.com
-rw-r--r-- | drivers/gpu/drm/bridge/cdns-dsi.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/bridge/lvds-encoder.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_of.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_panel.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_dp.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_dpi.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_dsi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/dsi/dsi_host.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/rcar-du/rcar_lvds.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/sti/sti_dvo.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/tegra/dsi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/tegra/output.c | 4 | ||||
-rw-r--r-- | include/drm/drm_panel.h | 2 |
18 files changed, 43 insertions, 25 deletions
diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c index f2d43f24acfb..ce9496d13986 100644 --- a/drivers/gpu/drm/bridge/cdns-dsi.c +++ b/drivers/gpu/drm/bridge/cdns-dsi.c | |||
@@ -1152,7 +1152,7 @@ static int cdns_dsi_attach(struct mipi_dsi_host *host, | |||
1152 | np = of_node_get(dev->dev.of_node); | 1152 | np = of_node_get(dev->dev.of_node); |
1153 | 1153 | ||
1154 | panel = of_drm_find_panel(np); | 1154 | panel = of_drm_find_panel(np); |
1155 | if (panel) { | 1155 | if (!IS_ERR(panel)) { |
1156 | bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_DSI); | 1156 | bridge = drm_panel_bridge_add(panel, DRM_MODE_CONNECTOR_DSI); |
1157 | } else { | 1157 | } else { |
1158 | bridge = of_drm_find_bridge(dev->dev.of_node); | 1158 | bridge = of_drm_find_bridge(dev->dev.of_node); |
diff --git a/drivers/gpu/drm/bridge/lvds-encoder.c b/drivers/gpu/drm/bridge/lvds-encoder.c index 75b0d3f6e4de..f56c92f7af7c 100644 --- a/drivers/gpu/drm/bridge/lvds-encoder.c +++ b/drivers/gpu/drm/bridge/lvds-encoder.c | |||
@@ -68,9 +68,9 @@ static int lvds_encoder_probe(struct platform_device *pdev) | |||
68 | 68 | ||
69 | panel = of_drm_find_panel(panel_node); | 69 | panel = of_drm_find_panel(panel_node); |
70 | of_node_put(panel_node); | 70 | of_node_put(panel_node); |
71 | if (!panel) { | 71 | if (IS_ERR(panel)) { |
72 | dev_dbg(&pdev->dev, "panel not found, deferring probe\n"); | 72 | dev_dbg(&pdev->dev, "panel not found, deferring probe\n"); |
73 | return -EPROBE_DEFER; | 73 | return PTR_ERR(panel); |
74 | } | 74 | } |
75 | 75 | ||
76 | lvds_encoder->panel_bridge = | 76 | lvds_encoder->panel_bridge = |
diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c index 3b8c7a6a5720..1f4a16772583 100644 --- a/drivers/gpu/drm/drm_of.c +++ b/drivers/gpu/drm/drm_of.c | |||
@@ -241,8 +241,10 @@ int drm_of_find_panel_or_bridge(const struct device_node *np, | |||
241 | 241 | ||
242 | if (panel) { | 242 | if (panel) { |
243 | *panel = of_drm_find_panel(remote); | 243 | *panel = of_drm_find_panel(remote); |
244 | if (*panel) | 244 | if (!IS_ERR(*panel)) |
245 | ret = 0; | 245 | ret = 0; |
246 | else | ||
247 | *panel = NULL; | ||
246 | } | 248 | } |
247 | 249 | ||
248 | /* No panel found yet, check for a bridge next. */ | 250 | /* No panel found yet, check for a bridge next. */ |
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index 965530a6f4cd..7e5530a04846 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c | |||
@@ -151,7 +151,9 @@ EXPORT_SYMBOL(drm_panel_detach); | |||
151 | * tree node. If a matching panel is found, return a pointer to it. | 151 | * tree node. If a matching panel is found, return a pointer to it. |
152 | * | 152 | * |
153 | * Return: A pointer to the panel registered for the specified device tree | 153 | * Return: A pointer to the panel registered for the specified device tree |
154 | * node or NULL if no panel matching the device tree node can be found. | 154 | * node or an ERR_PTR() if no panel matching the device tree node can be found. |
155 | * The only error that can be reported is -EPROBE_DEFER, meaning that the panel | ||
156 | * device has not been probed yet, and the caller should retry later. | ||
155 | */ | 157 | */ |
156 | struct drm_panel *of_drm_find_panel(const struct device_node *np) | 158 | struct drm_panel *of_drm_find_panel(const struct device_node *np) |
157 | { | 159 | { |
@@ -167,7 +169,7 @@ struct drm_panel *of_drm_find_panel(const struct device_node *np) | |||
167 | } | 169 | } |
168 | 170 | ||
169 | mutex_unlock(&panel_lock); | 171 | mutex_unlock(&panel_lock); |
170 | return NULL; | 172 | return ERR_PTR(-EPROBE_DEFER); |
171 | } | 173 | } |
172 | EXPORT_SYMBOL(of_drm_find_panel); | 174 | EXPORT_SYMBOL(of_drm_find_panel); |
173 | #endif | 175 | #endif |
diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c index 86330f396784..af7ab1ceb50f 100644 --- a/drivers/gpu/drm/exynos/exynos_dp.c +++ b/drivers/gpu/drm/exynos/exynos_dp.c | |||
@@ -232,9 +232,11 @@ static int exynos_dp_probe(struct platform_device *pdev) | |||
232 | np = of_parse_phandle(dev->of_node, "panel", 0); | 232 | np = of_parse_phandle(dev->of_node, "panel", 0); |
233 | if (np) { | 233 | if (np) { |
234 | dp->plat_data.panel = of_drm_find_panel(np); | 234 | dp->plat_data.panel = of_drm_find_panel(np); |
235 | |||
235 | of_node_put(np); | 236 | of_node_put(np); |
236 | if (!dp->plat_data.panel) | 237 | if (IS_ERR(dp->plat_data.panel)) |
237 | return -EPROBE_DEFER; | 238 | return PTR_ERR(dp->plat_data.panel); |
239 | |||
238 | goto out; | 240 | goto out; |
239 | } | 241 | } |
240 | 242 | ||
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c index 66945e0dc57f..5887e8522b70 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c | |||
@@ -240,8 +240,8 @@ struct drm_encoder *exynos_dpi_probe(struct device *dev) | |||
240 | 240 | ||
241 | if (ctx->panel_node) { | 241 | if (ctx->panel_node) { |
242 | ctx->panel = of_drm_find_panel(ctx->panel_node); | 242 | ctx->panel = of_drm_find_panel(ctx->panel_node); |
243 | if (!ctx->panel) | 243 | if (IS_ERR(ctx->panel)) |
244 | return ERR_PTR(-EPROBE_DEFER); | 244 | return ERR_CAST(ctx->panel); |
245 | } | 245 | } |
246 | 246 | ||
247 | return &ctx->encoder; | 247 | return &ctx->encoder; |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index 6d29777884f9..809e1e0447df 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c | |||
@@ -1519,6 +1519,9 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host, | |||
1519 | dsi->format = device->format; | 1519 | dsi->format = device->format; |
1520 | dsi->mode_flags = device->mode_flags; | 1520 | dsi->mode_flags = device->mode_flags; |
1521 | dsi->panel = of_drm_find_panel(device->dev.of_node); | 1521 | dsi->panel = of_drm_find_panel(device->dev.of_node); |
1522 | if (IS_ERR(dsi->panel)) | ||
1523 | dsi->panel = NULL; | ||
1524 | |||
1522 | if (dsi->panel) { | 1525 | if (dsi->panel) { |
1523 | drm_panel_attach(dsi->panel, &dsi->connector); | 1526 | drm_panel_attach(dsi->panel, &dsi->connector); |
1524 | dsi->connector.status = connector_status_connected; | 1527 | dsi->connector.status = connector_status_connected; |
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c index c54806d08dd7..681e2a07d03b 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | |||
@@ -148,8 +148,9 @@ int fsl_dcu_create_outputs(struct fsl_dcu_drm_device *fsl_dev) | |||
148 | if (panel_node) { | 148 | if (panel_node) { |
149 | fsl_dev->connector.panel = of_drm_find_panel(panel_node); | 149 | fsl_dev->connector.panel = of_drm_find_panel(panel_node); |
150 | of_node_put(panel_node); | 150 | of_node_put(panel_node); |
151 | if (!fsl_dev->connector.panel) | 151 | if (IS_ERR(fsl_dev->connector.panel)) |
152 | return -EPROBE_DEFER; | 152 | return PTR_ERR(fsl_dev->connector.panel); |
153 | |||
153 | return fsl_dcu_attach_panel(fsl_dev, fsl_dev->connector.panel); | 154 | return fsl_dcu_attach_panel(fsl_dev, fsl_dev->connector.panel); |
154 | } | 155 | } |
155 | 156 | ||
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c index 4a645926edb7..2bfb39082f54 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c | |||
@@ -341,7 +341,7 @@ static void mdp4_lcdc_encoder_disable(struct drm_encoder *encoder) | |||
341 | mdp4_write(mdp4_kms, REG_MDP4_LCDC_ENABLE, 0); | 341 | mdp4_write(mdp4_kms, REG_MDP4_LCDC_ENABLE, 0); |
342 | 342 | ||
343 | panel = of_drm_find_panel(mdp4_lcdc_encoder->panel_node); | 343 | panel = of_drm_find_panel(mdp4_lcdc_encoder->panel_node); |
344 | if (panel) { | 344 | if (!IS_ERR(panel)) { |
345 | drm_panel_disable(panel); | 345 | drm_panel_disable(panel); |
346 | drm_panel_unprepare(panel); | 346 | drm_panel_unprepare(panel); |
347 | } | 347 | } |
@@ -410,7 +410,7 @@ static void mdp4_lcdc_encoder_enable(struct drm_encoder *encoder) | |||
410 | dev_err(dev->dev, "failed to enable lcdc_clk: %d\n", ret); | 410 | dev_err(dev->dev, "failed to enable lcdc_clk: %d\n", ret); |
411 | 411 | ||
412 | panel = of_drm_find_panel(mdp4_lcdc_encoder->panel_node); | 412 | panel = of_drm_find_panel(mdp4_lcdc_encoder->panel_node); |
413 | if (panel) { | 413 | if (!IS_ERR(panel)) { |
414 | drm_panel_prepare(panel); | 414 | drm_panel_prepare(panel); |
415 | drm_panel_enable(panel); | 415 | drm_panel_enable(panel); |
416 | } | 416 | } |
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c index e3b1c86b7aae..32fba5664b0e 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | |||
@@ -34,9 +34,12 @@ static enum drm_connector_status mdp4_lvds_connector_detect( | |||
34 | struct mdp4_lvds_connector *mdp4_lvds_connector = | 34 | struct mdp4_lvds_connector *mdp4_lvds_connector = |
35 | to_mdp4_lvds_connector(connector); | 35 | to_mdp4_lvds_connector(connector); |
36 | 36 | ||
37 | if (!mdp4_lvds_connector->panel) | 37 | if (!mdp4_lvds_connector->panel) { |
38 | mdp4_lvds_connector->panel = | 38 | mdp4_lvds_connector->panel = |
39 | of_drm_find_panel(mdp4_lvds_connector->panel_node); | 39 | of_drm_find_panel(mdp4_lvds_connector->panel_node); |
40 | if (IS_ERR(mdp4_lvds_connector->panel)) | ||
41 | mdp4_lvds_connector->panel = NULL; | ||
42 | } | ||
40 | 43 | ||
41 | return mdp4_lvds_connector->panel ? | 44 | return mdp4_lvds_connector->panel ? |
42 | connector_status_connected : | 45 | connector_status_connected : |
diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c index 2f1a2780658a..29841f440111 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c | |||
@@ -1898,7 +1898,7 @@ int msm_dsi_host_register(struct mipi_dsi_host *host, bool check_defer) | |||
1898 | * output | 1898 | * output |
1899 | */ | 1899 | */ |
1900 | if (check_defer && msm_host->device_node) { | 1900 | if (check_defer && msm_host->device_node) { |
1901 | if (!of_drm_find_panel(msm_host->device_node)) | 1901 | if (IS_ERR(of_drm_find_panel(msm_host->device_node))) |
1902 | if (!of_drm_find_bridge(msm_host->device_node)) | 1902 | if (!of_drm_find_bridge(msm_host->device_node)) |
1903 | return -EPROBE_DEFER; | 1903 | return -EPROBE_DEFER; |
1904 | } | 1904 | } |
diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c index 155ad840f3c5..5d8e391e75f4 100644 --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c | |||
@@ -434,8 +434,8 @@ static int rcar_lvds_parse_dt(struct rcar_lvds *lvds) | |||
434 | ret = -EPROBE_DEFER; | 434 | ret = -EPROBE_DEFER; |
435 | } else { | 435 | } else { |
436 | lvds->panel = of_drm_find_panel(remote); | 436 | lvds->panel = of_drm_find_panel(remote); |
437 | if (!lvds->panel) | 437 | if (IS_ERR(lvds->panel)) |
438 | ret = -EPROBE_DEFER; | 438 | ret = PTR_ERR(lvds->panel); |
439 | } | 439 | } |
440 | 440 | ||
441 | done: | 441 | done: |
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index d53d5a09547f..01642aaf6127 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c | |||
@@ -595,7 +595,7 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host, | |||
595 | dsi->format = device->format; | 595 | dsi->format = device->format; |
596 | dsi->mode_flags = device->mode_flags; | 596 | dsi->mode_flags = device->mode_flags; |
597 | dsi->panel = of_drm_find_panel(device->dev.of_node); | 597 | dsi->panel = of_drm_find_panel(device->dev.of_node); |
598 | if (dsi->panel) | 598 | if (!IS_ERR(dsi->panel)) |
599 | return drm_panel_attach(dsi->panel, &dsi->connector); | 599 | return drm_panel_attach(dsi->panel, &dsi->connector); |
600 | 600 | ||
601 | return -EINVAL; | 601 | return -EINVAL; |
diff --git a/drivers/gpu/drm/sti/sti_dvo.c b/drivers/gpu/drm/sti/sti_dvo.c index a5979cd25cc7..030da55a8d30 100644 --- a/drivers/gpu/drm/sti/sti_dvo.c +++ b/drivers/gpu/drm/sti/sti_dvo.c | |||
@@ -387,7 +387,9 @@ sti_dvo_connector_detect(struct drm_connector *connector, bool force) | |||
387 | 387 | ||
388 | if (!dvo->panel) { | 388 | if (!dvo->panel) { |
389 | dvo->panel = of_drm_find_panel(dvo->panel_node); | 389 | dvo->panel = of_drm_find_panel(dvo->panel_node); |
390 | if (dvo->panel) | 390 | if (IS_ERR(dvo->panel)) |
391 | dvo->panel = NULL; | ||
392 | else | ||
391 | drm_panel_attach(dvo->panel, connector); | 393 | drm_panel_attach(dvo->panel, connector); |
392 | } | 394 | } |
393 | 395 | ||
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index da9814f94d00..2b40d1f6aee8 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | |||
@@ -833,8 +833,8 @@ static int sun6i_dsi_attach(struct mipi_dsi_host *host, | |||
833 | 833 | ||
834 | dsi->device = device; | 834 | dsi->device = device; |
835 | dsi->panel = of_drm_find_panel(device->dev.of_node); | 835 | dsi->panel = of_drm_find_panel(device->dev.of_node); |
836 | if (!dsi->panel) | 836 | if (IS_ERR(dsi->panel)) |
837 | return -EINVAL; | 837 | return PTR_ERR(dsi->panel); |
838 | 838 | ||
839 | dev_info(host->dev, "Attached device %s\n", device->name); | 839 | dev_info(host->dev, "Attached device %s\n", device->name); |
840 | 840 | ||
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index 87c5d89bc9ba..ad88ec230329 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c | |||
@@ -1411,6 +1411,9 @@ static int tegra_dsi_host_attach(struct mipi_dsi_host *host, | |||
1411 | struct tegra_output *output = &dsi->output; | 1411 | struct tegra_output *output = &dsi->output; |
1412 | 1412 | ||
1413 | output->panel = of_drm_find_panel(device->dev.of_node); | 1413 | output->panel = of_drm_find_panel(device->dev.of_node); |
1414 | if (IS_ERR(output->panel)) | ||
1415 | output->panel = NULL; | ||
1416 | |||
1414 | if (output->panel && output->connector.dev) { | 1417 | if (output->panel && output->connector.dev) { |
1415 | drm_panel_attach(output->panel, &output->connector); | 1418 | drm_panel_attach(output->panel, &output->connector); |
1416 | drm_helper_hpd_irq_event(output->connector.dev); | 1419 | drm_helper_hpd_irq_event(output->connector.dev); |
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c index ffe34bd0bb9d..0c0936511bb4 100644 --- a/drivers/gpu/drm/tegra/output.c +++ b/drivers/gpu/drm/tegra/output.c | |||
@@ -110,8 +110,8 @@ int tegra_output_probe(struct tegra_output *output) | |||
110 | panel = of_parse_phandle(output->of_node, "nvidia,panel", 0); | 110 | panel = of_parse_phandle(output->of_node, "nvidia,panel", 0); |
111 | if (panel) { | 111 | if (panel) { |
112 | output->panel = of_drm_find_panel(panel); | 112 | output->panel = of_drm_find_panel(panel); |
113 | if (!output->panel) | 113 | if (IS_ERR(output->panel)) |
114 | return -EPROBE_DEFER; | 114 | return PTR_ERR(output->panel); |
115 | 115 | ||
116 | of_node_put(panel); | 116 | of_node_put(panel); |
117 | } | 117 | } |
diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index 26a1b5fd8796..582a0ec0aa70 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h | |||
@@ -200,7 +200,7 @@ struct drm_panel *of_drm_find_panel(const struct device_node *np); | |||
200 | #else | 200 | #else |
201 | static inline struct drm_panel *of_drm_find_panel(const struct device_node *np) | 201 | static inline struct drm_panel *of_drm_find_panel(const struct device_node *np) |
202 | { | 202 | { |
203 | return NULL; | 203 | return ERR_PTR(-ENODEV); |
204 | } | 204 | } |
205 | #endif | 205 | #endif |
206 | 206 | ||