• Daniel Vetter's avatar
    drm/i915: unify PM interrupt preinstall sequence · d18ea1b5
    Daniel Vetter authored
    Since the addition of VECS we have a slightly different enable
    sequence for PM interrupts on ivb/hsw vs snb and vlv. Usually that
    will end up in hard to track down surprises.
    
    Hence unifiy things and since we have copies of this code in 3 places
    now, extract it into its own little helper.
    
    Note that this changes the irq preinstall sequence a bit for snb and
    vlv: We now also clear the PM registers in the preinstall hook, in
    addition to the PM register clearing/setup already done when actually
    enabling rps. So this doesn't fix a bug but simply unifies the code
    across all platforms. After the postinstall hook is similarly unified
    we can rip out the then redundant PM interrupt setup from the rps
    code.
    
    v3: Rebase on top of the retained double-GTIIR clearing. Also
    resurrect the masking/disabling of the gen6+ PM interrupts as spotted
    by Ben Widaswky.
    
    v4: Move the DE interrupt reset code out of gen5_gt_irq_preinstall
    back to ironlake_irq_preinstall where it really belongs. Spotted by
    Paulo.
    
    v3: Improve the commit message to more clearly spell out why we want
    to unify the code and what exactly changes.
    
    Cc: Paulo Zanoni <przanoni@gmail.com>
    Reviewed-by: default avatarBen Widawsky <ben@bwidawsk.net>
    [danvet: s/GT/PM/ to fix up a comment which Ben spotted while
    reviewing.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    d18ea1b5
i915_irq.c 91.2 KB