prepare() is the old-timey way to say pre_enable(). It should be called before modeset. This fixes an issue where the panel on cheza must have the regulator always-on/boot-on for it to work.
Cc: Sandeep Panda spanda@codeaurora.org Cc: Stephen Boyd swboyd@chromium.org Signed-off-by: Sean Paul seanpaul@chromium.org --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index 1b6e8b72be58..36577cae0a20 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -448,8 +448,6 @@ static void ti_sn_bridge_enable(struct drm_bridge *bridge) struct ti_sn_bridge *pdata = bridge_to_ti_sn_bridge(bridge); unsigned int val;
- drm_panel_prepare(pdata->panel); - /* DSI_A lane config */ val = (4 - pdata->dsi->lanes) << SN_DSIA_LANE_OFFSET; regmap_update_bits(pdata->regmap, SN_DSI_LANES_REG, @@ -507,6 +505,8 @@ static void ti_sn_bridge_pre_enable(struct drm_bridge *bridge) /* in case drm_panel is connected then HPD is not supported */ regmap_update_bits(pdata->regmap, SN_HPD_DISABLE_REG, SN_HPD_DISABLE_BIT, SN_HPD_DISABLE_BIT); + + drm_panel_prepare(pdata->panel); }
static void ti_sn_bridge_post_disable(struct drm_bridge *bridge)
The panel datasheet specifies a 500ms delay after power-down before re-enabling.
Cc: Sandeep Panda spanda@codeaurora.org Cc: Stephen Boyd swboyd@chromium.org Signed-off-by: Sean Paul seanpaul@chromium.org --- drivers/gpu/drm/panel/panel-simple.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 5b5d0a24e713..97964f7f2ace 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -1385,6 +1385,9 @@ static const struct panel_desc innolux_tv123wam = { .width = 259, .height = 173, }, + .delay = { + .unprepare = 500, + }, };
static const struct drm_display_mode innolux_zj070na_01p_mode = {
dri-devel@lists.freedesktop.org