drm/dbi: Print errors for mipi_dbi_command()
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 2 Jul 2021 13:56:01 +0000 (15:56 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Sun, 4 Jul 2021 22:22:51 +0000 (00:22 +0200)
The macro mipi_dbi_command() does not report errors unless you wrap it
in another macro to do the error reporting.

Report a rate-limited error so we know what is going on.

After this any code wishing to send command arrays can rely on
mipi_dbi_command() providing an appropriate error message if something
goes wrong.

Suggested-by: Noralf Trønnes <noralf@tronnes.org>
Suggested-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210702135601.3952726-1-linus.walleij@linaro.org
include/drm/drm_mipi_dbi.h

index f543d6e3e822c2921848981126eb6119377987e3..05e194958265b692344ca7c80a14c05fe25c8516 100644 (file)
@@ -183,7 +183,12 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
 #define mipi_dbi_command(dbi, cmd, seq...) \
 ({ \
        const u8 d[] = { seq }; \
-       mipi_dbi_command_stackbuf(dbi, cmd, d, ARRAY_SIZE(d)); \
+       struct device *dev = &(dbi)->spi->dev;  \
+       int ret; \
+       ret = mipi_dbi_command_stackbuf(dbi, cmd, d, ARRAY_SIZE(d)); \
+       if (ret) \
+               dev_err_ratelimited(dev, "error %d when sending command %#02x\n", ret, cmd); \
+       ret; \
 })
 
 #ifdef CONFIG_DEBUG_FS