• Stanislav Lisovskiy's avatar
    drm/i915/display: Disable SAGV on bw init, to force QGV point recalculation · 9299cde9
    Stanislav Lisovskiy authored
    Problem is that on some platforms, we do get QGV point mask in wrong
    state on boot. However driver assumes it is set to 0
    (i.e all points allowed), however in reality we might get them all
    restricted, causing issues.
    Lets disable SAGV initially to force proper QGV point state.
    If more QGV points are available, driver will recalculate and update
    those then after next commit.
    
    v2: - Added trace to see which QGV/PSF GV point is used when SAGV is
          disabled.
    v3: - Move force disable function to intel_bw_init in order to initialize
          bw state as well, so that hw/sw are immediately in sync after init.
    v4: - Don't try sending PCode request, seems like it is not possible at
          intel_bw_init, however assigning bw->state to be restricted as if
          SAGV is off, still forces driveer to send PCode request anyway on
          next modeset, so the solution still works.
          However we still need to address the case, when no display is
          connected, which anyway requires much more changes.
    
    v5: - Put PCode request back and apply temporary hack to make the
          request succeed(in case if there 2 PSF GV points with same BW, PCode
          accepts only if both points are restricted/unrestricted same time)
        - Fix argument sequence for adl_qgv_bw(Ville Syrjälä)
    
    v6: - Fix wrong platform checks, not to break everything else.
    
    v7: - Split the handling of quplicate QGV/PSF GV points (Vinod)
          Restrict force disable to display version below 14 (Vinod)
    
    v8: - Simplify icl_force_disable_sagv (Vinod)
    Reviewed-by: default avatarJouni Högander <jouni.hogander@intel.com>
    Signed-off-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    Signed-off-by: default avatarVinod Govindapillai <vinod.govindapillai@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240405113533.338553-5-vinod.govindapillai@intel.com
    9299cde9
intel_bw.c 37.4 KB