[RFC PATCH] drm/i915: Add GETPARAM for GuC submission version

Souza, Jose jose.souza at intel.com
Thu Feb 1 18:25:37 UTC 2024


On Wed, 2024-01-24 at 08:55 +0000, Tvrtko Ursulin wrote:
> On 24/01/2024 08:19, Joonas Lahtinen wrote:
> > Add reporting of the GuC submissio/VF interface version via GETPARAM
> > properties. Mesa intends to use this information to check for old
> > firmware versions with known bugs before enabling features like async
> > compute.
> 
> There was 
> https://patchwork.freedesktop.org/patch/560704/?series=124592&rev=1 
> which does everything in one go so would be my preference.

IMO Joonas version brings less burden to be maintained(no new struct).
But both versions works, please just get into some agreement so we can move this forward.

> 
> During the time of that patch there was discussion whether firmware 
> version or submission version was better. I vaguely remember someone 
> raised an issue with the latter. Adding John in case he remembers.
> 
> > Signed-off-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> > Cc: Kenneth Graunke <kenneth at whitecape.org>
> > Cc: Jose Souza <jose.souza at intel.com>
> > Cc: Sagar Ghuge <sagar.ghuge at intel.com>
> > Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> > Cc: John Harrison <John.C.Harrison at Intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > Cc: Jani Nikula <jani.nikula at intel.com>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> > ---
> >   drivers/gpu/drm/i915/i915_getparam.c | 12 ++++++++++++
> >   include/uapi/drm/i915_drm.h          | 13 +++++++++++++
> >   2 files changed, 25 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_getparam.c b/drivers/gpu/drm/i915/i915_getparam.c
> > index 5c3fec63cb4c1..f176372debc54 100644
> > --- a/drivers/gpu/drm/i915/i915_getparam.c
> > +++ b/drivers/gpu/drm/i915/i915_getparam.c
> > @@ -113,6 +113,18 @@ int i915_getparam_ioctl(struct drm_device *dev, void *data,
> >   		if (value < 0)
> >   			return value;
> >   		break;
> > +	case I915_PARAM_GUC_SUBMISSION_VERSION_MAJOR:
> > +	case I915_PARAM_GUC_SUBMISSION_VERSION_MINOR:
> > +	case I915_PARAM_GUC_SUBMISSION_VERSION_PATCH:
> > +		if (!intel_uc_uses_guc_submission(&to_gt(i915)->uc))
> > +			return -ENODEV;
> > +		if (param->param == I915_PARAM_GUC_SUBMISSION_VERSION_MAJOR)
> > +			value = to_gt(i915)->uc.guc.submission_version.major;
> > +		else if (param->param == I915_PARAM_GUC_SUBMISSION_VERSION_MINOR)
> > +			value = to_gt(i915)->uc.guc.submission_version.minor;
> > +		else
> > +			value = to_gt(i915)->uc.guc.submission_version.patch;
> > +		break;
> >   	case I915_PARAM_MMAP_GTT_VERSION:
> >   		/* Though we've started our numbering from 1, and so class all
> >   		 * earlier versions as 0, in effect their value is undefined as
> > diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
> > index fd4f9574d177a..7d5a47f182542 100644
> > --- a/include/uapi/drm/i915_drm.h
> > +++ b/include/uapi/drm/i915_drm.h
> > @@ -806,6 +806,19 @@ typedef struct drm_i915_irq_wait {
> >    */
> >   #define I915_PARAM_PXP_STATUS		 58
> >   
> > +/*
> > + * Query for the GuC submission/VF interface version number
> 
> What is this VF you speak of? :/
> 
> Regards,
> 
> Tvrtko
> 
> > + *
> > + * -ENODEV is returned if GuC submission is not used
> > + *
> > + * On success, returns the respective GuC submission/VF interface major,
> > + * minor or patch version as per the requested parameter.
> > + *
> > + */
> > +#define I915_PARAM_GUC_SUBMISSION_VERSION_MAJOR 59
> > +#define I915_PARAM_GUC_SUBMISSION_VERSION_MINOR 60
> > +#define I915_PARAM_GUC_SUBMISSION_VERSION_PATCH 61
> > +
> >   /* Must be kept compact -- no holes and well documented */
> >   
> >   /**



More information about the Intel-gfx mailing list