• Matt Roper's avatar
    drm/xe: Make MI_FLUSH_DW immediate size more explicit · de54bb81
    Matt Roper authored
    Despite its name, MI_FLUSH_DW instruction can write an immediate value
    of either dword size or qword size, depending on the 'length' field of
    the instruction.  Since "length" excludes the first two dwords of the
    instruction, a value of 2 in the length field implies a dword write and
    a value of 3 implies a qword write.  Even in cases where the flush
    instruction's post-sync operation is set to "no write" we're still
    expected to size the overall instruction as if we were doing a dword or
    qword write (i.e., a length of 1 shouldn't be used on modern platforms).
    
    Rather than baking a size of "1" into the #define and then adding
    another unexplained "+ 1" at all the spots where the definition gets
    used, lets just create MI_FLUSH_IMM_DW and MI_FLUSH_IMM_QW definitions
    that should be OR'd into the instruction header to make it more explicit
    what behavior we're requesting.
    
    Bspec: 60229
    Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
    Link: https://lore.kernel.org/r/20231016163449.1300701-9-matthew.d.roper@intel.comSigned-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    de54bb81
xe_gpu_commands.h 3.83 KB