• Matt Roper's avatar
    drm/i915/mtl: Add engine TLB invalidation · 1c388da5
    Matt Roper authored
    MTL's primary GT can continue to use the same engine TLB invalidation
    programming as past Xe_HP-based platforms.  However the media GT needs
    some special handling:
     * Invalidation registers on the media GT are singleton registers
       (unlike the primary GT where they are still MCR).
     * Since the GSC is now exposed as an engine, there's a new register to
       use for TLB invalidation.  The offset is identical to the compute
       engine offset, but this is expected --- compute engines only exist on
       the primary GT while the GSC only exists on the media GT.
     * Although there's only a single GSC engine instance, it inexplicably
       uses bit 1 to request invalidations rather than bit 0.
    
    v2:
     - Add a 'regs == xelpmp_regs' condition to the GSC instance handling.
       If the registers change on a future platform, the GSC-specific
       handling is likely to change as well.  (Andrzej)
    
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: Andrzej Hajda <andrzej.hajda@intel.com>
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230224012009.3594691-1-matthew.d.roper@intel.com
    1c388da5
intel_gt_regs.h 64.6 KB