diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2023-06-08 22:30:50 +0200 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2023-06-13 18:05:07 +0200 |
commit | 201963a82708780faaed55ca15f8261f98d36d56 (patch) | |
tree | 3609cd5e1b1796ed990e8651b25e6f36372dfac3 /drivers/gpu/drm/i915/display/icl_dsi.c | |
parent | drm/i915/dsi: Gate DSI clocks earlier (diff) | |
download | linux-201963a82708780faaed55ca15f8261f98d36d56.tar.xz linux-201963a82708780faaed55ca15f8261f98d36d56.zip |
drm/i915/dsi: Respect power cycle delay on icl+
Handle the DSI panel power cycle delay on icl+.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230608203057.23759-7-ville.syrjala@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/icl_dsi.c')
-rw-r--r-- | drivers/gpu/drm/i915/display/icl_dsi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c index 973215bec3c1..a89a45fc0468 100644 --- a/drivers/gpu/drm/i915/display/icl_dsi.c +++ b/drivers/gpu/drm/i915/display/icl_dsi.c @@ -1166,6 +1166,8 @@ static void gen11_dsi_pre_pll_enable(struct intel_atomic_state *state, { struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); + intel_dsi_wait_panel_power_cycle(intel_dsi); + intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_ON); msleep(intel_dsi->panel_on_delay); intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DEASSERT_RESET); @@ -1292,6 +1294,8 @@ static void gen11_dsi_powerdown_panel(struct intel_encoder *encoder) intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_ASSERT_RESET); intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_POWER_OFF); + intel_dsi->panel_power_off_time = ktime_get_boottime(); + /* ensure cmds dispatched to panel */ wait_for_cmds_dispatched_to_panel(encoder); } @@ -1986,6 +1990,8 @@ void icl_dsi_init(struct drm_i915_private *dev_priv) /* attach connector to encoder */ intel_connector_attach_encoder(intel_connector, encoder); + intel_dsi->panel_power_off_time = ktime_get_boottime(); + encoder->devdata = intel_bios_encoder_data_lookup(dev_priv, port); intel_bios_init_panel_late(dev_priv, &intel_connector->panel, encoder->devdata, NULL); |