@@ -1036,10 +1036,17 @@ static int guc_ads_create(struct intel_guc *guc)
/* MMIO reg state */
for_each_engine(engine, dev_priv, id) {
blob->reg_state.white_list[engine->guc_id].mmio_start =
- engine->mmio_base + GUC_MMIO_WHITE_LIST_START;
+ i915_mmio_reg_offset(RING_FORCE_TO_NONPRIV(engine->mmio_base, 0));
- /* Nothing to be saved or restored for now. */
+ /*
+ * Note: if the GuC whitelist management is enabled, the values
+ * should be filled using the workaround framework to avoid
+ * inconsistencies with the handling of FORCE_TO_NONPRIV
+ * registers.
+ */
blob->reg_state.white_list[engine->guc_id].count = 0;
+
+ /* Nothing to be saved or restored for now. */
}
/*
@@ -394,7 +394,6 @@ struct guc_policies {
#define GUC_REGSET_SAVE_CURRENT_VALUE 0x10
#define GUC_REGSET_MAX_REGISTERS 25
-#define GUC_MMIO_WHITE_LIST_START 0x24d0
#define GUC_MMIO_WHITE_LIST_MAX 12
#define GUC_S3_SAVE_SPACE_PAGES 10