On Mon, 18 Sep 2017, Ville Syrjala <ville.syrj...@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrj...@linux.intel.com>
>
> Pass an old crtc state to intel_ddi_post_disable() from the MST code.
>
> Note that this crtc state won't necessaitly match the one that was
> passed to intel_ddi_pre_enable() if the first stream to be enabled isn't
> the last stream to be disabled. But this is fine since the states should
> be identical in every important way. This does mean people frobbing
> the DDI pre_enable/post_disable hooks have to pay attention in what
> parts of the state they consult.

I wouldn't mind having some comments about this sprinkled here and
there, independent of this patch...

BR,
Jani.



>
> The alternative would be to inline the relevant code into the MST code.
> That is actually what we used to do for pre_enable before
> commit e081c8463ac9 ("drm/i915: Remove duplicate DDI enabling logic
> from MST path"). For post_disable we've always called the DDI hook.
>
> Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_ddi.c    | 4 +---
>  drivers/gpu/drm/i915/intel_dp_mst.c | 2 +-
>  2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c 
> b/drivers/gpu/drm/i915/intel_ddi.c
> index 672ce1356545..5d043a320f99 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2290,9 +2290,7 @@ static void intel_ddi_post_disable(struct intel_encoder 
> *encoder,
>                                  const struct intel_crtc_state 
> *old_crtc_state,
>                                  const struct drm_connector_state 
> *old_conn_state)
>  {
> -     /* old_crtc_state and old_conn_state are NULL when called from DP_MST */
> -     if (old_crtc_state &&
> -         intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
> +     if (intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_HDMI))
>               intel_ddi_post_disable_hdmi(encoder,
>                                           old_crtc_state, old_conn_state);
>       else
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c 
> b/drivers/gpu/drm/i915/intel_dp_mst.c
> index 8e3aad0ea60b..cb01d0dc46cd 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -169,7 +169,7 @@ static void intel_mst_post_disable_dp(struct 
> intel_encoder *encoder,
>       intel_mst->connector = NULL;
>       if (intel_dp->active_mst_links == 0) {
>               intel_dig_port->base.post_disable(&intel_dig_port->base,
> -                                               NULL, NULL);
> +                                               old_crtc_state, NULL);
>  
>               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
>       }

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to