On Wed, 17 Oct 2018 22:56:48 -0700
Vasily Khoruzhick <anars...@gmail.com> wrote:

> Both GPIOs are optional, so we shouldn't fail if any is missing.
> Without this fix reset is not deasserted if sleep GPIO is missing.
> 
> Signed-off-by: Vasily Khoruzhick <anars...@gmail.com>
> Acked-by: Maxime Ripard <maxime.rip...@bootlin.com>
> Tested-by: Maxime Ripard <maxime.rip...@bootlin.com>
> Cc: Vagrant Cascadian <vagr...@debian.org>

Reviewed-by: Andre Przywara <andre.przyw...@arm.com>

Thanks!
Andre.

> ---
>  drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/video/bridge/video-bridge-uclass.c
> b/drivers/video/bridge/video-bridge-uclass.c index
> cd4959cc71..5fecb4cfd5 100644 ---
> a/drivers/video/bridge/video-bridge-uclass.c +++
> b/drivers/video/bridge/video-bridge-uclass.c @@ -106,13 +106,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;

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to