OSDN Git Service

drm/of: Make drm_of_find_panel_or_bridge() fail when the device is disabled
authorBoris Brezillon <boris.brezillon@bootlin.com>
Wed, 9 May 2018 13:00:41 +0000 (15:00 +0200)
committerThierry Reding <treding@nvidia.com>
Tue, 10 Jul 2018 15:59:05 +0000 (17:59 +0200)
There's no point searching for a drm_bridge or drm_panel if the OF node
we're pointing has a status property that is not "okay" or "ok". Just
return -ENODEV in this case.

Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180509130042.9435-4-boris.brezillon@bootlin.com
drivers/gpu/drm/drm_of.c

index 1f4a167..2606129 100644 (file)
@@ -239,6 +239,11 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
        if (!remote)
                return -ENODEV;
 
+       if (!of_device_is_available(remote)) {
+               of_node_put(remote);
+               return -ENODEV;
+       }
+
        if (panel) {
                *panel = of_drm_find_panel(remote);
                if (!IS_ERR(*panel))