On Wed, Feb 16, 2022 at 09:41:46AM -0800, Lucas De Marchi wrote: > Now that all the called functions from __guc_ads_init() are converted to > use ads_map, stop using ads_blob in __guc_ads_init(). > > Cc: Matt Roper <matthew.d.roper@xxxxxxxxx> > Cc: Thomas Hellström <thomas.hellstrom@xxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: John Harrison <John.C.Harrison@xxxxxxxxx> > Cc: Matthew Brost <matthew.brost@xxxxxxxxx> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> Reviewed-by: Matthew Brost <matthew.brost@xxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 25 ++++++++++++---------- > 1 file changed, 14 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c > index 90cbb93a2945..d0593063c0dc 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c > @@ -608,7 +608,6 @@ static void __guc_ads_init(struct intel_guc *guc) > { > struct intel_gt *gt = guc_to_gt(guc); > struct drm_i915_private *i915 = gt->i915; > - struct __guc_ads_blob *blob = guc->ads_blob; > struct iosys_map info_map = IOSYS_MAP_INIT_OFFSET(&guc->ads_map, > offsetof(struct __guc_ads_blob, system_info)); > u32 base; > @@ -619,17 +618,18 @@ static void __guc_ads_init(struct intel_guc *guc) > /* System info */ > fill_engine_enable_masks(gt, &info_map); > > - blob->system_info.generic_gt_sysinfo[GUC_GENERIC_GT_SYSINFO_SLICE_ENABLED] = > - hweight8(gt->info.sseu.slice_mask); > - blob->system_info.generic_gt_sysinfo[GUC_GENERIC_GT_SYSINFO_VDBOX_SFC_SUPPORT_MASK] = > - gt->info.vdbox_sfc_access; > + ads_blob_write(guc, system_info.generic_gt_sysinfo[GUC_GENERIC_GT_SYSINFO_SLICE_ENABLED], > + hweight8(gt->info.sseu.slice_mask)); > + ads_blob_write(guc, system_info.generic_gt_sysinfo[GUC_GENERIC_GT_SYSINFO_VDBOX_SFC_SUPPORT_MASK], > + gt->info.vdbox_sfc_access); > > if (GRAPHICS_VER(i915) >= 12 && !IS_DGFX(i915)) { > u32 distdbreg = intel_uncore_read(gt->uncore, > GEN12_DIST_DBS_POPULATED); > - blob->system_info.generic_gt_sysinfo[GUC_GENERIC_GT_SYSINFO_DOORBELL_COUNT_PER_SQIDI] = > - ((distdbreg >> GEN12_DOORBELLS_PER_SQIDI_SHIFT) & > - GEN12_DOORBELLS_PER_SQIDI) + 1; > + ads_blob_write(guc, > + system_info.generic_gt_sysinfo[GUC_GENERIC_GT_SYSINFO_DOORBELL_COUNT_PER_SQIDI], > + ((distdbreg >> GEN12_DOORBELLS_PER_SQIDI_SHIFT) > + & GEN12_DOORBELLS_PER_SQIDI) + 1); > } > > /* Golden contexts for re-initialising after a watchdog reset */ > @@ -643,14 +643,17 @@ static void __guc_ads_init(struct intel_guc *guc) > guc_capture_list_init(guc); > > /* ADS */ > - blob->ads.scheduler_policies = base + ptr_offset(blob, policies); > - blob->ads.gt_system_info = base + ptr_offset(blob, system_info); > + ads_blob_write(guc, ads.scheduler_policies, base + > + offsetof(struct __guc_ads_blob, policies)); > + ads_blob_write(guc, ads.gt_system_info, base + > + offsetof(struct __guc_ads_blob, system_info)); > > /* MMIO save/restore list */ > guc_mmio_reg_state_init(guc); > > /* Private Data */ > - blob->ads.private_data = base + guc_ads_private_data_offset(guc); > + ads_blob_write(guc, ads.private_data, base + > + guc_ads_private_data_offset(guc)); > > i915_gem_object_flush_map(guc->ads_vma->obj); > } > -- > 2.35.1 >