• Akash Goel's avatar
    drm/i915: Add low level set of routines for programming PM IER/IIR/IMR register set · f4e9af4f
    Akash Goel authored
    So far PM IER/IIR/IMR registers were being used only for Turbo related
    interrupts. But interrupts coming from GuC also use the same set.
    As a precursor to supporting GuC interrupts, added new low level routines
    so as to allow sharing the programming of PM IER/IIR/IMR registers between
    Turbo & GuC.
    Also similar to PM IMR, maintaining a bitmask for PM IER register, to allow
    easy sharing of it between Turbo & GuC without involving a rmw operation.
    
    v2:
    - For appropriateness & avoid any ambiguity, rename old functions
      enable/disable pm_irq to mask/unmask pm_irq and rename new functions
      enable/disable pm_interrupts to enable/disable pm_irq. (Tvrtko)
    - Use u32 in place of uint32_t. (Tvrtko)
    
    v3:
    - Rename the fields pm_irq_mask & pm_ier_mask and do some cleanup. (Chris)
    - Rebase.
    
    v4: Fix the inadvertent disabling of User interrupt for VECS ring causing
        failure for certain IGTs.
    
    v5: Use dev_priv with HAS_VEBOX macro. (Tvrtko)
    Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    f4e9af4f
i915_drv.h 119 KB