• Matt Roper's avatar
    drm/i915: Move/adjust register definitions related to Wa_22011450934 · 262a6cd0
    Matt Roper authored
    The implementation of Wa_22011450934 introduced three new register
    definitions in i915_reg.h that didn't get moved to the GT/engine
    register headers when all the other registers moved; let's move them to
    the appropriate headers and tidy up their definitions now for
    consistency:
    
     - STATE_ACK_DEBUG is moved to the engine register header and converted
       to a parameterized definition; the workaround only needs the RCS
       instance to be programmed, but there are instances on other engines
       that could be used by other workarounds in the future.
    
     - The two CULLBIT registers move to the GT register header.  Since
       they belong to MMIO ranges that became MCR starting with Xe_HP,
       their definitions should be defined as MCR_REG() and use an Xe_HP
       prefix to keep the register semantics clear.
    
    Note that the MCR definition is just for consistency and to prevent
    accidental misuse if other workarounds related to these registers show
    up in the future.  There's no functional change to today's driver since
    the workaround that references these registers only accesses them via
    MI_LRR engine instructions.  Engine-initiated register accesses do not
    utilize the same steering controls as CPU-initiated accesses; they
    use a different steering control register (0x20CC) which is initialized
    to a non-terminated DSS target by pre-OS firmware and never changed
    thereafter (i915 does not touch it and userspace does not have
    permission to change that register).
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: default avatarGustavo Sousa <gustavo.sousa@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230117202627.4134579-1-matthew.d.roper@intel.com
    262a6cd0
intel_lrc.c 43.8 KB