• Imre Deak's avatar
    drm/i915: Fix PIPEDMC disabling for a bigjoiner configuration · 7eeef327
    Imre Deak authored
    For a bigjoiner configuration display->crtc_disable() will be called
    first for the slave CRTCs and then for the master CRTC. However slave
    CRTCs will be actually disabled only after the master CRTC is disabled
    (from the encoder disable hooks called with the master CRTC state).
    Hence the slave PIPEDMCs can be disabled only after the master CRTC is
    disabled, make this so.
    
    intel_encoders_post_pll_disable() must be called only for the master
    CRTC, as for the other two encoder disable hooks. While at it fix this
    up as well. This didn't cause a problem, since
    intel_encoders_post_pll_disable() will call the corresponding hook only
    for an encoder/connector connected to the given CRTC, however slave
    CRTCs will have no associated encoder/connector.
    
    Fixes: 3af2ff08 ("drm/i915: Enable a PIPEDMC whenever its corresponding pipe is enabled")
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230510103131.1618266-2-imre.deak@intel.com
    7eeef327
intel_display.c 234 KB