[Intel-gfx] [PATCH V5 1/5] drm/i915/gt: Add support of mocs propagation
Siddiqui, Ayaz A
ayaz.siddiqui at intel.com
Thu Sep 16 07:13:12 UTC 2021
> -----Original Message-----
> From: Roper, Matthew D <matthew.d.roper at intel.com>
> Sent: Wednesday, September 15, 2021 9:09 AM
> To: Siddiqui, Ayaz A <ayaz.siddiqui at intel.com>
> Cc: intel-gfx at lists.freedesktop.org; Tang, CQ <cq.tang at intel.com>
> Subject: Re: [PATCH V5 1/5] drm/i915/gt: Add support of mocs propagation
>
> On Fri, Sep 03, 2021 at 02:51:49PM +0530, Ayaz A Siddiqui wrote:
> > Now there are lots of Command and registers that require mocs index
> > programming.
> > So propagating mocs_index from mocs to gt so that it can be used
> > directly without having platform-specific checks.
> >
> > V2:
> > Changed 'i915_mocs_index_gt' to anonymous structure.
> >
> > Cc: CQ Tang<cq.tang at intel.com>
> > Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> > Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui at intel.com>
> > ---
> > drivers/gpu/drm/i915/gt/intel_gt.c | 2 ++
> > drivers/gpu/drm/i915/gt/intel_gt_types.h | 4 ++++
> > drivers/gpu/drm/i915/gt/intel_mocs.c | 13 +++++++++++++
> > drivers/gpu/drm/i915/gt/intel_mocs.h | 1 +
> > 4 files changed, 20 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c
> > b/drivers/gpu/drm/i915/gt/intel_gt.c
> > index 62d40c9866427..2aeaae036a6f8 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_gt.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
> > @@ -682,6 +682,8 @@ int intel_gt_init(struct intel_gt *gt)
> > goto err_pm;
> > }
> >
> > + set_mocs_index(gt);
> > +
> > err = intel_engines_init(gt);
> > if (err)
> > goto err_engines;
> > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_types.h
> > b/drivers/gpu/drm/i915/gt/intel_gt_types.h
> > index a81e21bf1bd1a..6fdcde64c1800 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_gt_types.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_gt_types.h
> > @@ -192,6 +192,10 @@ struct intel_gt {
> >
> > unsigned long mslice_mask;
> > } info;
> > +
> > + struct {
> > + u8 uc_index;
> > + } mocs;
> > };
> >
> > enum intel_gt_scratch_field {
> > diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c
> > b/drivers/gpu/drm/i915/gt/intel_mocs.c
> > index 582c4423b95d6..7ccac15d9a331 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_mocs.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
> > @@ -22,6 +22,7 @@ struct drm_i915_mocs_table {
> > unsigned int size;
> > unsigned int n_entries;
> > const struct drm_i915_mocs_entry *table;
> > + u8 uc_index;
> > };
> >
> > /* Defines for the tables (XXX_MOCS_0 - XXX_MOCS_63) */ @@ -340,14
> > +341,18 @@ static unsigned int get_mocs_settings(const struct
> > drm_i915_private *i915, {
> > unsigned int flags;
> >
> > + memset(table, 0, sizeof(struct drm_i915_mocs_table));
> > +
> > if (IS_DG1(i915)) {
> > table->size = ARRAY_SIZE(dg1_mocs_table);
> > table->table = dg1_mocs_table;
> > + table->uc_index = 1;
> > table->n_entries = GEN9_NUM_MOCS_ENTRIES;
> > } else if (GRAPHICS_VER(i915) >= 12) {
> > table->size = ARRAY_SIZE(tgl_mocs_table);
> > table->table = tgl_mocs_table;
> > table->n_entries = GEN9_NUM_MOCS_ENTRIES;
> > + table->uc_index = 3;
> > } else if (GRAPHICS_VER(i915) == 11) {
> > table->size = ARRAY_SIZE(icl_mocs_table);
> > table->table = icl_mocs_table;
> > @@ -504,6 +509,14 @@ static u32 global_mocs_offset(void)
> > return i915_mmio_reg_offset(GEN12_GLOBAL_MOCS(0));
> > }
> >
> > +void set_mocs_index(struct intel_gt *gt)
>
> Hi Ayaz,
>
> I overlooked it when doing my review before, but for non-static functions like
> this we should have a proper function name prefix
> (intel_* in this case).
>
> Would you mind writing a small patch to rename this?
>
> Thanks.
>
>
> Matt
HI Matt,
I have send a patch with above change in ML.
Do we have some guideline link?
It will be good to be
aware with all the guide to avoid such mistake in future.
-Ayaz
>
> > +{
> > + struct drm_i915_mocs_table table;
> > +
> > + get_mocs_settings(gt->i915, &table);
> > + gt->mocs.uc_index = table.uc_index;
> > +}
> > +
> > void intel_mocs_init(struct intel_gt *gt) {
> > struct drm_i915_mocs_table table;
> > diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.h
> > b/drivers/gpu/drm/i915/gt/intel_mocs.h
> > index d83274f5163bd..8a09d64b115f7 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_mocs.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_mocs.h
> > @@ -36,5 +36,6 @@ struct intel_gt;
> >
> > void intel_mocs_init(struct intel_gt *gt); void
> > intel_mocs_init_engine(struct intel_engine_cs *engine);
> > +void set_mocs_index(struct intel_gt *gt);
> >
> > #endif
> > --
> > 2.26.2
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> VTT-OSGC Platform Enablement
> Intel Corporation
> (916) 356-2795
More information about the Intel-gfx
mailing list