• Ville Syrjälä's avatar
    drm/i915: Reduce the time we hold struct mutex in sprite update_plane code · 82284b6b
    Ville Syrjälä authored
    We used to call the entire intel specific update_plane hook while
    holding struct_mutex. Actually we only need to hold struct_mutex while
    pinning/unpinning the obj. The plane state itself is protected by the
    kms locks, and as the object is pinned we can dig out the offset and
    tiling information from it without fearing that it would change
    underneath us.
    
    So now we don't need to drop and reacquire the lock around the
    wait_for_vblank. Also we will need another wait_for_vblank in the IVB
    specific update_plane hook, and this way we don't need to worry about
    struct_mutex there either.
    
    Also move the intel_plane->obj=NULL assignment outside strut_mutex in
    disable_plane to make it clear that it's not protected by struct_mutex.
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    82284b6b
intel_sprite.c 29.8 KB