• Daniel Vetter's avatar
    drm/i915: switch crtc->shared_dpll from a pointer to an enum · e2b78267
    Daniel Vetter authored
    Dealing with discrete enum values is simpler for hw state readout and
    pipe config computations than pointers - having neat names instead of
    chasing pointers should look better in the code.
    
    This isn't a that good reason for pch plls, but on haswell we actually
    have 3 different types of plls: WRPLL, SPLL and the DP clocks. Having
    explicit names should help there.
    
    Since this also adds the intel_crtc_to_shared_dpll helper to further
    abstract away the crtc -> dpll relationship this will also help to
    make the next patch simpler, which moves the shared dpll into the pipe
    configuration.
    
    Also note that for uniformity we have two special dpll ids: NONE for
    pipes which need a shared pll but don't have one (yet) and private for
    when there's a non-shared pll (e.g. per-pipe or per-port pll).
    
    I've thought whether we should also add a 2nd enum for the type of the
    pll we want (for really generic pll selection code) but thrown that
    idea out again - likely there's too much platform craziness going on
    to be able to share the pll selection logic much.
    
    Since this touched all the shared_pll functions a bit I've also done
    an s/intel_crtc/crtc/ replacement on a few of them.
    
    v2: Kill DPLL_ID_NONE. It's probably better to call it DPLL_ID_INVALID and use
    it to check that the compute config stage assigns a dpll to every pipe.
    But since that code isn't ready yet until we move the dpll selection out
    of the ->mode_set callback, there's no use for it.
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    e2b78267
i915_drv.h 62.1 KB