Re: [PATCH 1/7] drm/i915: Make pre-production detection use direct revid comparison

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 08, 2021 at 11:08:46AM -0700, Srivatsa, Anusha wrote:
> 
> 
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
> > Matt Roper
> > Sent: Wednesday, July 7, 2021 10:38 PM
> > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > Subject:  [PATCH 1/7] drm/i915: Make pre-production detection
> > use direct revid comparison
> > 
> > Although we're converting our workarounds to use a revid->stepping lookup
> > table, the function that detects pre-production hardware should continue to
> > compare against PCI revision ID values directly.  These are listed in the bspec
> > as integers, so it's easier to confirm their correctness if we just use an integer
> > literal rather than a symbolic name anyway.
> > 
> > Since the BXT, GLK, and CNL revid macros were never used in any
> > workaround code, just remove them completely.
> > 
> > Bspec: 13620, 19131, 13626, 18329
> > Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx>
> > ---
> >  drivers/gpu/drm/i915/i915_drv.c   |  8 ++++----
> >  drivers/gpu/drm/i915/i915_drv.h   | 24 ------------------------
> >  drivers/gpu/drm/i915/intel_step.h |  1 +
> >  3 files changed, 5 insertions(+), 28 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c
> > b/drivers/gpu/drm/i915/i915_drv.c index 30d8cd8c69b1..90136995f5eb
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -271,10 +271,10 @@ static void intel_detect_preproduction_hw(struct
> > drm_i915_private *dev_priv)
> >  	bool pre = false;
> > 
> >  	pre |= IS_HSW_EARLY_SDV(dev_priv);
> > -	pre |= IS_SKL_REVID(dev_priv, 0, SKL_REVID_F0);
> > -	pre |= IS_BXT_REVID(dev_priv, 0, BXT_REVID_B_LAST);
> > -	pre |= IS_KBL_GT_STEP(dev_priv, 0, STEP_A0);
> > -	pre |= IS_GLK_REVID(dev_priv, 0, GLK_REVID_A2);
> > +	pre |= IS_SKYLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x6;
> > +	pre |= IS_BROXTON(dev_priv) && INTEL_REVID(dev_priv) < 0xA;
> > +	pre |= IS_KABYLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x1;
> > +	pre |= IS_GEMINILAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x3;
> > 
> >  	if (pre) {
> >  		drm_err(&dev_priv->drm, "This is a pre-production stepping.
> > "
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > b/drivers/gpu/drm/i915/i915_drv.h index 6dff4ca01241..796e6838bc79
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -1473,35 +1473,11 @@ IS_SUBPLATFORM(const struct drm_i915_private
> > *i915,
> > 
> >  #define IS_SKL_REVID(p, since, until) (IS_SKYLAKE(p) && IS_REVID(p, since,
> > until))
> > 
> > -#define BXT_REVID_A0		0x0
> > -#define BXT_REVID_A1		0x1
> > -#define BXT_REVID_B0		0x3
> > -#define BXT_REVID_B_LAST	0x8
> > -#define BXT_REVID_C0		0x9
> > -
> > -#define IS_BXT_REVID(dev_priv, since, until) \
> > -	(IS_BROXTON(dev_priv) && IS_REVID(dev_priv, since, until))
> 
> Here, we can have IS_BXT_GT_STEP, similar to other platform and use in intel_detect_preproduction_hw() above.
> Same for other platforms - SKL and GLK. KBL already uses IS_KBL_GT_STEP.

Are you going to use that macro in your DMC code?  If not, there's no
need for it since we don't have any stepping-specific workarounds on BXT
that would use the macro.  For now I've only kept the GT and/or display
stepping macros on platforms that will actually use them (like KBL).

I just sent a v2 of the series that I think should be suitable for you
to build your DMC work on top of (and I included one of the patches from
your series at the beginning of mine).  Note that I punted on adding
tables for CFL/WHL/AML/CML because the steppings on those platforms are
a bit weird and I'm not sure exactly what you'll need from the DMC side
of things.  We don't need the tables on those platforms for workarounds,
so you can add them with your DMC series when you know exactly how you
need the data presented.


Matt

> 
> Anusha 
> >  #define IS_KBL_GT_STEP(dev_priv, since, until) \
> >  	(IS_KABYLAKE(dev_priv) && IS_GT_STEP(dev_priv, since, until))
> > #define IS_KBL_DISPLAY_STEP(dev_priv, since, until) \
> >  	(IS_KABYLAKE(dev_priv) && IS_DISPLAY_STEP(dev_priv, since,
> > until))
> > 
> > -#define GLK_REVID_A0		0x0
> > -#define GLK_REVID_A1		0x1
> > -#define GLK_REVID_A2		0x2
> > -#define GLK_REVID_B0		0x3
> > -
> > -#define IS_GLK_REVID(dev_priv, since, until) \
> > -	(IS_GEMINILAKE(dev_priv) && IS_REVID(dev_priv, since, until))
> > -
> > -#define CNL_REVID_A0		0x0
> > -#define CNL_REVID_B0		0x1
> > -#define CNL_REVID_C0		0x2
> > -
> > -#define IS_CNL_REVID(p, since, until) \
> > -	(IS_CANNONLAKE(p) && IS_REVID(p, since, until))
> > -
> >  #define ICL_REVID_A0		0x0
> >  #define ICL_REVID_A2		0x1
> >  #define ICL_REVID_B0		0x3
> > diff --git a/drivers/gpu/drm/i915/intel_step.h
> > b/drivers/gpu/drm/i915/intel_step.h
> > index 958a8bb5d677..8efacef6ab31 100644
> > --- a/drivers/gpu/drm/i915/intel_step.h
> > +++ b/drivers/gpu/drm/i915/intel_step.h
> > @@ -22,6 +22,7 @@ struct intel_step_info {  enum intel_step {
> >  	STEP_NONE = 0,
> >  	STEP_A0,
> > +	STEP_A1,
> >  	STEP_A2,
> >  	STEP_B0,
> >  	STEP_B1,
> > --
> > 2.25.4
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux