]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/exynos: Don't fail if no TE-gpio is defined for DSI driver
authorMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 21 Jan 2022 10:00:39 +0000 (11:00 +0100)
committerInki Dae <inki.dae@samsung.com>
Fri, 25 Feb 2022 00:50:47 +0000 (09:50 +0900)
TE-gpio is optional and if it is not found then gpiod_get_optional()
returns NULL. In such case the code will continue and try to convert NULL
gpiod to irq what in turn fails. The failure is then propagated and driver
is not registered.

Fix this by returning early from exynos_dsi_register_te_irq() if no
TE-gpio is found.

Fixes: ba71f264941c ("drm/exynos: Replace legacy gpio interface for gpiod interface")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_dsi.c

index 32a36572b89473e567e18eb1eb6e406025b40f52..14ebbb124852bfdcc070f4dfd1baedfc4214deb9 100644 (file)
@@ -1335,7 +1335,9 @@ static int exynos_dsi_register_te_irq(struct exynos_dsi *dsi,
        int te_gpio_irq;
 
        dsi->te_gpio = devm_gpiod_get_optional(dsi->dev, "te", GPIOD_IN);
-       if (IS_ERR(dsi->te_gpio)) {
+       if (!dsi->te_gpio) {
+               return 0;
+       } else if (IS_ERR(dsi->te_gpio)) {
                dev_err(dsi->dev, "gpio request failed with %ld\n",
                                PTR_ERR(dsi->te_gpio));
                return PTR_ERR(dsi->te_gpio);