• Daniel Vetter's avatar
    drm/i915: push commit_output_state past crtc disabling · 976f8a20
    Daniel Vetter authored
    This requires a few changes
    - We still need a noop function for crtc->disable, becuase the fb
      helper is a bit too intimate with the crtc helper.
    - We need to clear crtc->fb ourselves in intel_crtc_disable now that
      we no longer rely on the helper's disable_unused_functions to do
      that.
    - We need to split out the sare update code, becuase the crtc code
      can't call update_dpms any more, it needs to disable the crtc
      unconditionally. This is because we now keep onto the encoder ->
      crtc mapping of the (still) active output pipe configuration.
    - To check that we really disable a crtc that still has encoders,
      insert a WARN_ON(!enabled) in the crtc disable function.
    - Lastly, we need to walk over all crtcs to update their enabled state
      after having called commit_output_state - for all disabled crtcs the
      crtc helper code has done that for us previously.
    
    v2: Update connector dpms and encoder->connectors_active after
    disabling the crtc, too.
    
    v3: Noop-out intel_encoder_disable. Similarly to the crtc disable
    callback used by the crtc helper code we can't simply remove all these
    encoder callbacks: The fb helper (which we still use) has a rather
    incetious relationship with the crtc helper code ...
    Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    976f8a20
intel_display.c 221 KB