From: Uma Shankar <uma.shankar@xxxxxxxxx> Device ready to be done after panel power on and before sending the OTP commands. Patch fixes the enable sequence as per this. Signed-off-by: Uma Shankar <uma.shankar@xxxxxxxxx> Signed-off-by: Vidya Srinivas <vidya.srinivas@xxxxxxxxx> --- drivers/gpu/drm/i915/intel_dsi.c | 12 ++++++++++++ drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 4 +--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c index 60ca0b9..ac02fd8 100644 --- a/drivers/gpu/drm/i915/intel_dsi.c +++ b/drivers/gpu/drm/i915/intel_dsi.c @@ -568,6 +568,12 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder, intel_dsi_prepare(encoder, pipe_config); + if (IS_BROXTON(dev_priv)) { + /* Panel Enable */ + drm_panel_power_on(intel_dsi->panel); + msleep(intel_dsi->panel_on_delay); + } + /* Panel Enable over CRC PMIC */ if (intel_dsi->gpio_panel) gpiod_set_value_cansleep(intel_dsi->gpio_panel, 1); @@ -586,6 +592,12 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder, /* put device in ready state */ intel_dsi_device_ready(encoder); + if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) { + /* Panel Enable */ + drm_panel_power_on(intel_dsi->panel); + msleep(intel_dsi->panel_on_delay); + } + drm_panel_prepare(intel_dsi->panel); for_each_dsi_port(port, intel_dsi->ports) diff --git a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c index 4279279..aa73d22 100644 --- a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c +++ b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c @@ -493,9 +493,6 @@ static void generic_exec_sequence(struct drm_panel *panel, enum mipi_seq seq_id) static int vbt_panel_prepare(struct drm_panel *panel) { - generic_exec_sequence(panel, MIPI_SEQ_ASSERT_RESET); - generic_exec_sequence(panel, MIPI_SEQ_POWER_ON); - generic_exec_sequence(panel, MIPI_SEQ_DEASSERT_RESET); generic_exec_sequence(panel, MIPI_SEQ_INIT_OTP); return 0; @@ -550,6 +547,7 @@ static int vbt_panel_get_modes(struct drm_panel *panel) static int vbt_panel_power_on(struct drm_panel *panel) { generic_exec_sequence(panel, MIPI_SEQ_POWER_ON); + generic_exec_sequence(panel, MIPI_SEQ_ASSERT_RESET); return 0; } -- 1.9.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx