[Intel-gfx] [PATCH 1/4] drm/i915: Stop forcing clock gating init for future platforms

Matt Roper matthew.d.roper at intel.com
Fri Sep 8 21:50:55 UTC 2023


On Fri, Sep 08, 2023 at 04:45:33PM -0500, Lucas De Marchi wrote:
> On Wed, Sep 06, 2023 at 04:47:34PM -0700, Matt Roper wrote:
> > In the early days of i915, pretty much every platform needed to
> > initialize _something_ in the clock gating init functions.  In some
> > cases the items initialized were inside the GT (and really should have
> > been initialized through the GT workaround infrastructure instead).
> > In other cases they were display programming (sometimes not even related
> > to "clock gating" at all!) which probably needs to move inside the
> > display-specific code.  The number of initialization tasks that are
> > truly "clock gating" and don't fall within the GT or display domains is
> > relatively limited.  Let's stop forcing future platforms to always
> > define a clock gating init hook.
> > 
> > Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_clock_gating.c | 10 +++-------
> > 1 file changed, 3 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_clock_gating.c b/drivers/gpu/drm/i915/intel_clock_gating.c
> > index c66eb6abd4a2..1f2e2d7087cb 100644
> > --- a/drivers/gpu/drm/i915/intel_clock_gating.c
> > +++ b/drivers/gpu/drm/i915/intel_clock_gating.c
> > @@ -835,9 +835,7 @@ CG_FUNCS(nop);
> >  */
> > void intel_clock_gating_hooks_init(struct drm_i915_private *i915)
> > {
> > -	if (IS_METEORLAKE(i915))
> > -		i915->clock_gating_funcs = &nop_clock_gating_funcs;
> > -	else if (IS_PONTEVECCHIO(i915))
> > +	if (IS_PONTEVECCHIO(i915))
> 
> shouldn't we use the normal "last platforms first" and just add a check
> here for GRAPHICS/DISPLAY version >= x?

That's basically what we're doing here.  PVC is the latest/newest
platform that needs any clock gating handling.

> 
> > 		i915->clock_gating_funcs = &pvc_clock_gating_funcs;
> > 	else if (IS_DG2(i915))
> > 		i915->clock_gating_funcs = &dg2_clock_gating_funcs;
> > @@ -845,7 +843,7 @@ void intel_clock_gating_hooks_init(struct drm_i915_private *i915)
> > 		i915->clock_gating_funcs = &xehpsdv_clock_gating_funcs;
> > 	else if (IS_ALDERLAKE_P(i915))
> > 		i915->clock_gating_funcs = &adlp_clock_gating_funcs;
> > -	else if (GRAPHICS_VER(i915) == 12)
> > +	else if (DISPLAY_VER(i915) == 12)
> 
> why changing this while the others still check for graphics version?

If this used graphics version, it would pick up stuff like MTL now that
they don't show up at the top of the ladder.  DISPLAY_VER matches the
platforms that we actually mean to match, especially since the
programming inside this specific branch is display-only programming.


Matt

> 
> Lucas De Marchi
> 
> > 		i915->clock_gating_funcs = &gen12lp_clock_gating_funcs;
> > 	else if (GRAPHICS_VER(i915) == 11)
> > 		i915->clock_gating_funcs = &icl_clock_gating_funcs;
> > @@ -885,8 +883,6 @@ void intel_clock_gating_hooks_init(struct drm_i915_private *i915)
> > 		i915->clock_gating_funcs = &i85x_clock_gating_funcs;
> > 	else if (GRAPHICS_VER(i915) == 2)
> > 		i915->clock_gating_funcs = &i830_clock_gating_funcs;
> > -	else {
> > -		MISSING_CASE(INTEL_DEVID(i915));
> > +	else
> > 		i915->clock_gating_funcs = &nop_clock_gating_funcs;
> > -	}
> > }
> > -- 
> > 2.41.0
> > 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-gfx mailing list