• Ville Syrjälä's avatar
    drm/i915: Do .crtc_compute_clock() earlier · b000abd3
    Ville Syrjälä authored
    Currently we calculate a lot of things (pixel rate, watermarks,
    cdclk) trusting that the DPLL can generate the exact frequency
    we ask it. In practice that is not true and there can be
    certain amount of rounding involved.
    
    To allow us to eventually get accurate numbers for all our
    DPLL clock derived state we need to move the DPLL calculation
    to hapen much earlier. To that end we hoist it up to the just
    after the fastset checks. For now we just do the easy code
    motion, and the actual back feeding of the final DPLL clock
    into the state will come later.
    
    A slight change here is that now .crtc_compute_clock()
    can get called while the shared_dpll is still assigned.
    But since .crtc_compute_clock() no longer assignes new
    shared_dplls this is perfectly fine.
    
    TODO: I'd actually like to do this before the fastset check
    so that if the DPLL state should change we actually do the
    modeset. Which I think is what the video aficionados want,
    but it might not be what the fans of fastboot want. Not yet
    sure how to reconcile those conflicting requirements...
    
    v2: s/return/goto/ in error handling
    Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220907091057.11572-6-ville.syrjala@linux.intel.com
    b000abd3
intel_display.c 263 KB