sn65dsi83_host_attach is called from probe, so silence message upon deferred probe. This can happen, e.g. if the bridge driver is built-in, but the host is built as module.
Signed-off-by: Alexander Stein alexander.stein@ew.tq-group.com --- This might look a bit weird in the first place, but the real benefit is usage of device_set_deferred_probe_reason() inside dev_err_probe(). Having /sys/kernel/debug/devices_deferred providing more information actually helped me tracking down an issue.
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c index a88d90f928ce..1f02596d6db4 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c @@ -644,8 +644,7 @@ static int sn65dsi83_host_attach(struct sn65dsi83 *ctx)
host = of_find_mipi_dsi_host_by_node(ctx->host_node); if (!host) { - dev_err(dev, "failed to find dsi host\n"); - return -EPROBE_DEFER; + return dev_err_probe(dev, -EPROBE_DEFER, "failed to find dsi host\n"); }
dsi = devm_mipi_dsi_device_register_full(dev, host, &info);
There is no need to require non-sleeping GPIO access. Silence the WARN_ON() if GPIO is using e.g. I2C expanders.
Signed-off-by: Alexander Stein alexander.stein@ew.tq-group.com --- If the GPIO is from an expander on I2C, this warning will rise obviously. Straight forward fix.
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c index 1f02596d6db4..2927fa2abd3d 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c @@ -346,7 +346,7 @@ static void sn65dsi83_atomic_enable(struct drm_bridge *bridge, }
/* Deassert reset */ - gpiod_set_value(ctx->enable_gpio, 1); + gpiod_set_value_cansleep(ctx->enable_gpio, 1); usleep_range(1000, 1100);
/* Get the LVDS format from the bridge state. */ @@ -497,7 +497,7 @@ static void sn65dsi83_atomic_disable(struct drm_bridge *bridge, int ret;
/* Put the chip in reset, pull EN line low, and assure 10ms reset low timing. */ - gpiod_set_value(ctx->enable_gpio, 0); + gpiod_set_value_cansleep(ctx->enable_gpio, 0); usleep_range(10000, 11000);
ret = regulator_disable(ctx->vcc);
dri-devel@lists.freedesktop.org