OSDN Git Service

drm/bridge: ti-sn65dsi83: Check link status register after enabling the bridge
authorMarek Vasut <marex@denx.de>
Sun, 13 Feb 2022 02:26:48 +0000 (03:26 +0100)
committerRobert Foss <robert.foss@linaro.org>
Thu, 31 Mar 2022 15:31:48 +0000 (17:31 +0200)
In rare cases, the bridge may not start up correctly, which usually
leads to no display output. In case this happens, warn about it in
the kernel log.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Robert Foss <robert.foss@linaro.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220213022648.495895-1-marex@denx.de
drivers/gpu/drm/bridge/ti-sn65dsi83.c

index c2afef9..2831f08 100644 (file)
@@ -488,6 +488,11 @@ static void sn65dsi83_atomic_enable(struct drm_bridge *bridge,
        /* Clear all errors that got asserted during initialization. */
        regmap_read(ctx->regmap, REG_IRQ_STAT, &pval);
        regmap_write(ctx->regmap, REG_IRQ_STAT, pval);
+
+       usleep_range(10000, 12000);
+       regmap_read(ctx->regmap, REG_IRQ_STAT, &pval);
+       if (pval)
+               dev_err(ctx->dev, "Unexpected link status 0x%02x\n", pval);
 }
 
 static void sn65dsi83_atomic_disable(struct drm_bridge *bridge,