If the GPIO subsystem is not ready make sure to return -EPROBE_DEFER
instead of silently continuing without HPD.

Reported-by: Marcel Ziswiler <marcel.ziswi...@toradex.com>
Signed-off-by: Stefan Agner <ste...@agner.ch>
---
 drivers/gpu/drm/tegra/output.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
index ffe34bd0bb9d..4bcefe455afd 100644
--- a/drivers/gpu/drm/tegra/output.c
+++ b/drivers/gpu/drm/tegra/output.c
@@ -133,7 +133,9 @@ int tegra_output_probe(struct tegra_output *output)
        output->hpd_gpio = of_get_named_gpio_flags(output->of_node,
                                                   "nvidia,hpd-gpio", 0,
                                                   &output->hpd_gpio_flags);
-       if (gpio_is_valid(output->hpd_gpio)) {
+       if (output->hpd_gpio == -EPROBE_DEFER) {
+               return -EPROBE_DEFER;
+       } else if (gpio_is_valid(output->hpd_gpio)) {
                unsigned long flags;
 
                err = gpio_request_one(output->hpd_gpio, GPIOF_DIR_IN,
-- 
2.18.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to