aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2020-10-15 18:36:28 +0300
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>2020-10-15 21:05:41 +0300
commitcf4b988a64dc6896d8641e28e08a2a827686104a (patch)
tree54ce512f7384a84e13ac88499a1862ecdcffaa6f
parent1bd4270d9df2c3553e7554642ea151078367fd63 (diff)
drm: bridge: lt9611uxc: reset bridge on mode setting
Internal LT9611UXC logic can easily get wrong timings during mode change. So reset the chip to help it switching to the new mode. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-rw-r--r--drivers/gpu/drm/bridge/lontium-lt9611uxc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
index 98f56753d87f..bff8ac960079 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
@@ -314,12 +314,14 @@ lt9611uxc_bridge_mode_valid(struct drm_bridge *bridge,
static void lt9611uxc_bridge_post_disable(struct drm_bridge *bridge)
{
+#if 0
struct lt9611uxc *lt9611uxc = bridge_to_lt9611uxc(bridge);
lt9611uxc_lock(lt9611uxc);
regmap_update_bits(lt9611uxc->regmap, 0xb024, 0x1, 0x1);
lt9611uxc->sleep = true;
lt9611uxc_unlock(lt9611uxc);
+#endif
}
static void lt9611uxc_video_setup(struct lt9611uxc *lt9611uxc,
@@ -371,8 +373,7 @@ static void lt9611uxc_bridge_mode_set(struct drm_bridge *bridge,
{
struct lt9611uxc *lt9611uxc = bridge_to_lt9611uxc(bridge);
- if (lt9611uxc->sleep)
- lt9611uxc_reset(lt9611uxc);
+ lt9611uxc_reset(lt9611uxc);
lt9611uxc_lock(lt9611uxc);
lt9611uxc_video_setup(lt9611uxc, mode);