• Daniel Vetter's avatar
    drm: Handle legacy per-crtc locking with full acquire ctx · d059f652
    Daniel Vetter authored
    So drivers using the atomic interfaces expect that they can acquire
    additional locks internal to the driver as-needed. Examples would be
    locks to protect shared state like shared display PLLs.
    
    Unfortunately the legacy ioctls assume that all locking is fully done
    by the drm core. Now for those paths which grab all locks we already
    have to keep around an acquire context in dev->mode_config. Helper
    functions that implement legacy interfaces in terms of atomic support
    can therefore grab this acquire contexts and reuse it.
    
    The only interfaces left are the cursor and pageflip ioctls. So add
    functions to grab the crtc lock these need using an acquire context
    and preserve it for atomic drivers to reuse.
    
    v2:
    - Fixup comments&kerneldoc.
    - Drop the WARNING from modeset_lock_all_crtcs since that can be used
      in legacy paths with crtc locking.
    
    v3: Fix a type on the kerneldoc Dave spotted.
    
    Cc: Dave Airlie <airlied@redhat.com>
    Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
    Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    d059f652
drm_modeset_lock.c 11 KB