• Ben Skeggs's avatar
    drm/nouveau/kms/nv50: separate out core surface commit · ad633619
    Ben Skeggs authored
    This commit separates the calculation of EVO state from the commit, in
    order to make the same code useful for atomic modesetting.
    
    The legacy interfaces have been wrapped on top of them.
    
    As of this commit, we're no longer bothering to point the core surface
    at a valid framebuffer.  Prior to this, we'd initially point the core
    channel to the framebuffer passed in a mode_set()/mode_set_base(), and
    then use the base channel for any page-flip updates, leaving the core
    channel pointing at stale information.
    
    The important thing here is to configure the core surface parameters in
    such a way that EVO's error checking is satisfied.
    
    TL;DR: The situation isn't too much different to before.
    
    There may be brief periods of times during modesets where the (garbage)
    core surface will be showing.  This issue will be resolved once support
    for atomic commits has been implemented and we're able to interlock the
    updates that involve multiple channels.
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    ad633619
nv50_display.c 79 KB