• Lyude Paul's avatar
    drm/nouveau: Move PBN and VCPI allocation into nv50_head_atom · 88ec89ad
    Lyude Paul authored
    Atomic checks should never modify anything outside of the state that
    they're passed in. Unfortunately this appears to be exactly what we're
    doing in nv50_msto_atomic_check() where we update mstc->pbn every time
    the function is called. This hasn't caused any bugs yet, but it needs to
    be fixed in order to ensure that when committing an artificially
    duplicated state (like during system resume), that we reuse the PBN of
    that state to perform VCPI allocations and don't recalculate a different
    value from the drm connector's reported bpc.
    
    Also, move the VCPI slot allocations while we're at it as well. With
    this, removing a topology in suspend while using nouveau no longer
    causes the new atomic VCPI helpers to complain.
    Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
    Fixes: eceae147 ("drm/dp_mst: Start tracking per-port VCPI allocations")
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Reviewed-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190202002023.29665-5-lyude@redhat.com
    88ec89ad
disp.c 62.8 KB