• Daniel Vetter's avatar
    drm/i915: don't frob mm.suspended when not using ums · db1b76ca
    Daniel Vetter authored
    In kernel modeset driver mode we're in full control of the chip,
    always. So there's no need at all to set mm.suspended in
    i915_gem_idle. Hence move that out into the leavevt ioctl. Since
    i915_gem_idle doesn't suspend gem any more we can also drop the
    re-enabling for KMS in the thaw function.
    
    Also clean up the handling of mm.suspend at driver load by coalescing
    all the assignments.
    
    Stumbled over while reading through our resume code for unrelated
    reasons.
    
    v2: Shovel mm.suspended into the (newly created) ums dungeon as
    suggested by Chris Wilson. The plan is that once we've completely
    stopped relying on the register save/restore code we could shovel even
    that in there.
    
    v3: Improve the locking for the entervt/leavevt ioctls a bit by moving
    the dev->struct_mutex locking outside of i915_gem_idle. Also don't
    clear dev_priv->ums.mm_suspended for the kms case, we allocate it with
    kzalloc. Both suggested by Chris Wilson.
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v2)
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    db1b76ca
i915_drv.c 40.6 KB