• Daniel Vetter's avatar
    drm/i915/hdmi: convert to encoder->disable/enable · 5ab432ef
    Daniel Vetter authored
    I've picked hdmi as the first encoder to convert because it's rather
    simple:
    - no cloning possible
    - no differences between prepare/commit and dpms off/on switching.
    
    A few changes are required to do so:
    - Split up the dpms code into an enable/disable function and wire it
      up with the intel encoder.
    - Noop out the existing encoder prepare/commit functions used by the
      crtc helper - our crtc enable/disable code now calls back into the
      encoder enable/disable code at the right spot.
    - Create new helper functions to handle dpms changes.
    - Add intel_encoder->connectors_active to better track dpms state. Atm
      this is unused, but it will be useful to correctly disable the
      entire display pipe for cloned configurations. Also note that for
      now this is only useful in the dpms code - thanks to the crtc
      helper's dpms confusion across a modeset operation we can't (yet)
      rely on this having a sensible value in all circumstances.
    - Rip out the encoder helper dpms callback, if this is still getting
      called somewhere we have a bug. The slight issue with that is that
      the crtc helper abuses dpms off to disable unused functions. Hence
      we also need to implement a default encoder disable function to do
      just that with the new encoder->disable callback.
    - Note that we drop the cpt modeset verification in the commit
      callback, too. The right place to do this would be in the crtc's
      enable function, _after_ all the encoders are set up. But because
      not all encoders are converted yet, we can't do that. Hence disable
      this check temporarily as a minor concession to bisectability.
    
    v2: Squash the dpms mode to only the supported values -
    connector->dpms is for internal tracking only, we can hence avoid
    needless state-changes a bit whithout causing harm.
    
    v3: Apply bikeshed to disable|enable_ddi, suggested by Paulo Zanoni.
    Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    5ab432ef
intel_drv.h 18 KB