• Daniel Vetter's avatar
    drm/nouveau: protect evo_wait/evo_kick sections with a channel mutex · 59ad1465
    Daniel Vetter authored
    With per-crtc locks modeset operations can run in parallel, and the
    cursor code uses the device-global evo master channel for hw frobbing.
    But the pageflip code can also sync with the master under some
    circumstances. Hence just wrap things up in a mutex to ensure that
    pushbuf access doesn't intermingle.
    
    The approach here is a bit overkill since the per-crtc channels used
    to schedule the pageflips could probably be used without this pushbuf
    locking, but I'm not familiar enough with the nouveau codebase to be
    sure of that.
    
    v2: Add missing mutex_init to avoid angering lockdep.
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    59ad1465
nv50_display.c 56 KB