• Ville Syrjälä's avatar
    drm/i915: Activate DRRS after state readout · 4c35e5d1
    Ville Syrjälä authored
    On BDW+ we have just the one set of DP M/N registers. The
    values we write into said registers depends on whether we
    want DRRS to be in high or low gear. This causes issues
    for the state checker which currently has to assume either
    set of M/N (high or low refresh rate) values may appear there.
    That sort of works for M/N itself, but all other values
    derived from the M/N (dotclock, pixel rate) are not handled
    correctly, leading to potential for state checker mismatches.
    
    Let's avoid all those problems by simply keeping DRRS in
    high gear until the state checker has done its hardware
    state readout.
    
    Note that hitting this issue presumable became very hard
    after commit 1b333c67 ("drm/i915: Do DRRS disable/enable
    during pre/post_plane_update()") since the state check would
    have to laze about for one full second (delay used by
    intel_drrs_schedule_work()) to see the low refresh rate.
    But it is still theoretically possible.
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20221020120706.25728-1-ville.syrjala@linux.intel.comReviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    4c35e5d1
intel_display.c 261 KB