• Peteris Rudzusiks's avatar
    drm/nouveau: fix duplication of nv50_head_atom struct · 4ff8e3e1
    Peteris Rudzusiks authored
    [ Upstream commit c4a52d66 ]
    
    nv50_head_atomic_duplicate_state() makes a copy of nv50_head_atom
    struct. This patch adds copying of struct member named "or", which
    previously was left uninitialized in the duplicated structure.
    
    Due to this bug, incorrect nhsync and nvsync values were sometimes used.
    In my particular case, that lead to a mismatch between the output
    resolution of the graphics device (GeForce GT 630 OEM) and the reported
    input signal resolution on the display. xrandr reported 1680x1050, but
    the display reported 1280x1024. As a result of this mismatch, the output
    on the display looked like it was cropped (only part of the output was
    actually visible on the display).
    
    git bisect pointed to commit 2ca7fb5c ("drm/nouveau/kms/nv50: handle
    SetControlOutputResource from head"), which added the member "or" to
    nv50_head_atom structure, but forgot to copy it in
    nv50_head_atomic_duplicate_state().
    
    Fixes: 2ca7fb5c ("drm/nouveau/kms/nv50: handle SetControlOutputResource from head")
    Signed-off-by: default avatarPeteris Rudzusiks <peteris.rudzusiks@gmail.com>
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    4ff8e3e1
head.c 14.6 KB