
On Wed, 17 Oct 2018 22:56:48 -0700 Vasily Khoruzhick anarsoul@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 anarsoul@gmail.com Acked-by: Maxime Ripard maxime.ripard@bootlin.com Tested-by: Maxime Ripard maxime.ripard@bootlin.com Cc: Vagrant Cascadian vagrant@debian.org
Reviewed-by: Andre Przywara andre.przywara@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;