• Ville Syrjälä's avatar
    drm/i915: Set all unused color plane offsets to ~0xfff again · 79148ce4
    Ville Syrjälä authored
    When the number of potential color planes grew to 4 we stopped
    setting all unused color plane offsets to ~0xfff. The code
    still tries to do this, but actually does nothing since the
    loop limits are bogus.
    
    skl_check_main_surface() actually depends on this ~0xfff
    behaviour as it will make sure to move the main surface
    offset below the aux surface offset because the hardware
    AUX_DIST must be a non-negative value [1], and for simplicity
    it doesn't bother checking if the AUX plane is actually
    needed or not. So currently it may end up shuffling the
    main surface around based on some stale leftover AUX offset.
    
    The skl+ plane code also just blindly calculates the AUX_DIST
    whether or not the AUX plane is actually needed by the hw or
    not, and that too will now potentially use some stale AUX
    surface offset in the calculation. Would seem nicer to
    guarantee a consistent non-negative AUX_DIST always.
    
    So bring back the original ~0xfff offset behaviour for
    unused color planes. Though it doesn't seem super likely
    that this inconsistency would cause any real issues.
    
    Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Imre Deak <imre.deak@intel.com>
    Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
    Fixes: 2dfbf9d2 ("drm/i915/tgl: Gen-12 display can decompress surfaces compressed by the media engine")
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201008101608.8652-1-ville.syrjala@linux.intel.comReviewed-by: default avatarImre Deak <imre.deak@intel.com>
    79148ce4
intel_display.c 550 KB