• José Roberto de Souza's avatar
    drm/i915/display/psr: Handle plane and pipe restrictions at every page flip · ac220f5f
    José Roberto de Souza authored
    PSR2 selective is not supported over rotated and scaled planes.
    We had the rotation check in intel_psr2_sel_fetch_config_valid()
    but that code path is only execute when a modeset is needed and
    those plane parameters can change without a modeset.
    
    Pipe selective fetch restrictions are also needed, it could be added
    in intel_psr_compute_config() but pippe scaling is computed after
    it is executed, so leaving as is for now.
    There is no much loss in this approach as it would cause selective
    fetch to not enabled as for alderlake-P and newer will cause it to
    switch to PSR1 that will have the same power-savings as do full pipe
    fetch.
    
    Also need to check those restricions in the second
    for_each_oldnew_intel_plane_in_state() loop because the state could
    only have a plane that is not affected by those restricitons but
    the damaged area intersect with planes that has those restrictions,
    so a full pipe fetch is required.
    
    v2:
    - also handling pipe restrictions
    
    BSpec: 55229
    Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> # v1
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
    Signed-off-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210930001409.254817-1-jose.souza@intel.com
    ac220f5f
intel_psr.c 68.9 KB