Merge branch '2020-06-15-misc-bugfixes'
[oweals/u-boot.git] / drivers / video / bridge / video-bridge-uclass.c
index 79facd02a687ba4efb8ca814555c3c0a33458e3f..389b02cdcba2c75a81b9a6cacd23fa66900dd075 100644 (file)
@@ -1,15 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (C) 2015 Google, Inc
  * Written by Simon Glass <sjg@chromium.org>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <dm.h>
 #include <errno.h>
 #include <edid.h>
+#include <log.h>
 #include <video_bridge.h>
+#include <linux/delay.h>
 
 int video_bridge_set_backlight(struct udevice *dev, int percent)
 {
@@ -107,13 +108,19 @@ static int video_bridge_pre_probe(struct udevice *dev)
 int video_bridge_set_active(struct udevice *dev, bool active)
 {
        struct video_bridge_priv *uc_priv = dev_get_uclass_priv(dev);
-       int ret;
+       int ret = 0;
 
        debug("%s: %d\n", __func__, active);
-       ret = dm_gpio_set_value(&uc_priv->sleep, !active);
-       if (ret)
-               return ret;
-       if (active) {
+       if (uc_priv->sleep.dev) {
+               ret = dm_gpio_set_value(&uc_priv->sleep, !active);
+               if (ret)
+                       return ret;
+       }
+
+       if (!active)
+               return 0;
+
+       if (uc_priv->reset.dev) {
                ret = dm_gpio_set_value(&uc_priv->reset, true);
                if (ret)
                        return ret;