[Intel-gfx] [PATCH v8 08/38] drm/i915/icl: Disable DSI transcoders
Madhav Chauhan
madhav.chauhan at intel.com
Wed Oct 31 10:10:44 UTC 2018
On 10/30/2018 5:26 PM, Jani Nikula wrote:
> From: Madhav Chauhan <madhav.chauhan at intel.com>
>
> This patch disables transcoders by writing to TRANS_CONF
> registers for each DSI ports.
>
> v2 by Jani:
> - Wait for pipeconf active to go low
Thanks for catching this, it has to be low.
Regards,
Madhav
>
> Signed-off-by: Madhav Chauhan <madhav.chauhan at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
> drivers/gpu/drm/i915/icl_dsi.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/icl_dsi.c b/drivers/gpu/drm/i915/icl_dsi.c
> index f7f48ff147d0..644ad7475920 100644
> --- a/drivers/gpu/drm/i915/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/icl_dsi.c
> @@ -777,6 +777,29 @@ gen11_dsi_pre_enable(struct intel_encoder *encoder,
> intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_ON);
> }
>
> +static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder)
> +{
> + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> + struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> + enum port port;
> + enum transcoder dsi_trans;
> + u32 tmp;
> +
> + for_each_dsi_port(port, intel_dsi->ports) {
> + dsi_trans = dsi_port_to_transcoder(port);
> +
> + /* disable transcoder */
> + tmp = I915_READ(PIPECONF(dsi_trans));
> + tmp &= ~PIPECONF_ENABLE;
> + I915_WRITE(PIPECONF(dsi_trans), tmp);
> +
> + /* wait for transcoder to be disabled */
> + if (intel_wait_for_register(dev_priv, PIPECONF(dsi_trans),
> + I965_PIPECONF_ACTIVE, 0, 50))
> + DRM_ERROR("DSI trancoder not disabled\n");
> + }
> +}
> +
> static void __attribute__((unused)) gen11_dsi_disable(
> struct intel_encoder *encoder,
> const struct intel_crtc_state *old_crtc_state,
> @@ -787,4 +810,7 @@ static void __attribute__((unused)) gen11_dsi_disable(
> /* step1: turn off backlight */
> intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_OFF);
> intel_panel_disable_backlight(old_conn_state);
> +
> + /* step2d,e: disable transcoder and wait */
> + gen11_dsi_disable_transcoder(encoder);
> }
More information about the Intel-gfx
mailing list