]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/xe: Don't hardcode GuC's MOCS index in register header
authorMatt Roper <matthew.d.roper@intel.com>
Fri, 2 Jun 2023 23:52:10 +0000 (16:52 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:34:28 +0000 (18:34 -0500)
Although PVC is currently the only platform that needs us to program a
GuC register with the index of an uncached MOCS entry, it's likely other
platforms will need this in the future.  Rather than hardcoding PVC's
index into the register header, we should just pull the appropriate
index from gt->mocs.uc_index to future-proof the code.

Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20230602235210.1314028-3-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/regs/xe_guc_regs.h
drivers/gpu/drm/xe/xe_guc.c

index ea8118f16722b40a7da1743ac87990065388471f..fcb747201bc1ca460356bcd8d4dd58b5fa399696 100644 (file)
 #define   GUC_WOPCM_SIZE_LOCKED                        REG_BIT(0)
 
 #define GUC_SHIM_CONTROL                       XE_REG(0xc064)
-#define   PVC_GUC_MOCS_INDEX_MASK              REG_GENMASK(25, 24)
-#define   PVC_GUC_MOCS_UC_INDEX                        1
-#define   PVC_GUC_MOCS_INDEX(index)            REG_FIELD_PREP(PVC_GUC_MOCS_INDEX_MASK, \
-                                                              index)
+#define   GUC_MOCS_INDEX_MASK                  REG_GENMASK(25, 24)
 #define   GUC_SHIM_WC_ENABLE                   REG_BIT(21)
 #define   GUC_ENABLE_MIA_CLOCK_GATING          REG_BIT(15)
 #define   GUC_ENABLE_READ_CACHE_FOR_WOPCM_DATA REG_BIT(10)
index 04a57af85d9e5c035b855d8f718d6a2bf7a0cd15..e51d8fb4a354a95bdc79e989a088cf1455de1a5c 100644 (file)
@@ -328,7 +328,7 @@ static void guc_prepare_xfer(struct xe_guc *guc)
                                GUC_ENABLE_MIA_CACHING;
 
        if (xe->info.platform == XE_PVC)
-               shim_flags |= PVC_GUC_MOCS_INDEX(PVC_GUC_MOCS_UC_INDEX);
+               shim_flags |= REG_FIELD_PREP(GUC_MOCS_INDEX_MASK, gt->mocs.uc_index);
 
        /* Must program this register before loading the ucode with DMA */
        xe_mmio_write32(gt, GUC_SHIM_CONTROL, shim_flags);