diff mbox series

drm/i915: Use graphics ver, rel info for media on old platforms

Message ID 20221010231720.3730568-1-radhakrishna.sripada@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Use graphics ver, rel info for media on old platforms | expand

Commit Message

Sripada, Radhakrishna Oct. 10, 2022, 11:17 p.m. UTC
Platforms prior to MTL do not have a separate media and graphics version.
On platforms where GMD id is not supported, reuse the graphics ip version,
release info for media.

The rest of the IP graphics, display versions would be copied during driver
creation.

While at it warn if GMD is not used for platforms greater than gen12.

Fixes: c2c7075225ef ("drm/i915: Read graphics/media/display arch version from hw")
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
---
 drivers/gpu/drm/i915/intel_device_info.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Jani Nikula Oct. 11, 2022, 7:27 a.m. UTC | #1
On Mon, 10 Oct 2022, Radhakrishna Sripada <radhakrishna.sripada@intel.com> wrote:
> Platforms prior to MTL do not have a separate media and graphics version.
> On platforms where GMD id is not supported, reuse the graphics ip version,
> release info for media.
>
> The rest of the IP graphics, display versions would be copied during driver
> creation.
>
> While at it warn if GMD is not used for platforms greater than gen12.
>
> Fixes: c2c7075225ef ("drm/i915: Read graphics/media/display arch version from hw")
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_device_info.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 090097bb3c0a..ba178b61bceb 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -329,8 +329,18 @@ static void intel_ipver_early_init(struct drm_i915_private *i915)
>  {
>  	struct intel_runtime_info *runtime = RUNTIME_INFO(i915);
>  
> -	if (!HAS_GMD_ID(i915))
> +	if (!HAS_GMD_ID(i915)) {
> +		drm_WARN_ON(&i915->drm, RUNTIME_INFO(i915)->graphics.ip.ver > 12);
> +		/*
> +		 * On older platforms, graphics and media share the same ip
> +		 * version and release.
> +		 */
> +		RUNTIME_INFO(i915)->media.ip.ver =
> +			RUNTIME_INFO(i915)->graphics.ip.ver;
> +		RUNTIME_INFO(i915)->media.ip.rel =
> +			RUNTIME_INFO(i915)->graphics.ip.rel;

You could assign the whole struct ip_version (*) at once, or is there a
reason you're intentionally not assigning step?

BR,
Jani.

(*) Why does that name not have intel_ prefix?

>  		return;
> +	}
>  
>  	ip_ver_read(i915, i915_mmio_reg_offset(GMD_ID_GRAPHICS),
>  		    &runtime->graphics.ip);
Sripada, Radhakrishna Oct. 11, 2022, 8:30 a.m. UTC | #2
Hi Jani,

> -----Original Message-----
> From: Jani Nikula <jani.nikula@linux.intel.com>
> Sent: Tuesday, October 11, 2022 12:28 AM
> To: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; intel-
> gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org; Sripada, Radhakrishna
> <radhakrishna.sripada@intel.com>; De Marchi, Lucas
> <lucas.demarchi@intel.com>; Roper, Matthew D
> <matthew.d.roper@intel.com>
> Subject: Re: [PATCH] drm/i915: Use graphics ver, rel info for media on old
> platforms
> 
> On Mon, 10 Oct 2022, Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> wrote:
> > Platforms prior to MTL do not have a separate media and graphics version.
> > On platforms where GMD id is not supported, reuse the graphics ip version,
> > release info for media.
> >
> > The rest of the IP graphics, display versions would be copied during driver
> > creation.
> >
> > While at it warn if GMD is not used for platforms greater than gen12.
> >
> > Fixes: c2c7075225ef ("drm/i915: Read graphics/media/display arch version
> from hw")
> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> > Cc: Matt Roper <matthew.d.roper@intel.com>
> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_device_info.c | 12 +++++++++++-
> >  1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c
> b/drivers/gpu/drm/i915/intel_device_info.c
> > index 090097bb3c0a..ba178b61bceb 100644
> > --- a/drivers/gpu/drm/i915/intel_device_info.c
> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
> > @@ -329,8 +329,18 @@ static void intel_ipver_early_init(struct
> drm_i915_private *i915)
> >  {
> >  	struct intel_runtime_info *runtime = RUNTIME_INFO(i915);
> >
> > -	if (!HAS_GMD_ID(i915))
> > +	if (!HAS_GMD_ID(i915)) {
> > +		drm_WARN_ON(&i915->drm, RUNTIME_INFO(i915)-
> >graphics.ip.ver > 12);
> > +		/*
> > +		 * On older platforms, graphics and media share the same ip
> > +		 * version and release.
> > +		 */
> > +		RUNTIME_INFO(i915)->media.ip.ver =
> > +			RUNTIME_INFO(i915)->graphics.ip.ver;
> > +		RUNTIME_INFO(i915)->media.ip.rel =
> > +			RUNTIME_INFO(i915)->graphics.ip.rel;
> 
> You could assign the whole struct ip_version (*) at once, or is there a
> reason you're intentionally not assigning step?
Step info would anyways be determined later in the function intel_step_init.
We already have macros in place to handle common gt and media steps there.

Do you suggest we memcpy(&RUNTIME_INFO(i915)->media.ip, &RUNTIME_INFO->graphics.ip, sizeof(struct ip_version)) here?

> 
> BR,
> Jani.
> 
> (*) Why does that name not have intel_ prefix?
Good question. Since introduced in " a5b7ef27da60 drm/i915: Add struct to hold IP version"
we have been using as is. The author might have felt that the structure is not big enough/used in as many places
to have an intel_ prefix. Do you see a symbol collision here that we need to add intel_ prefix? If so should we do it
in a separate patch?

Thanks,
Radhakrishna(RK) Sripada
> 
> >  		return;
> > +	}
> >
> >  	ip_ver_read(i915, i915_mmio_reg_offset(GMD_ID_GRAPHICS),
> >  		    &runtime->graphics.ip);
> 
> --
> Jani Nikula, Intel Open Source Graphics Center
Jani Nikula Oct. 11, 2022, 10:10 a.m. UTC | #3
On Tue, 11 Oct 2022, "Sripada, Radhakrishna" <radhakrishna.sripada@intel.com> wrote:
> Hi Jani,
>
>> -----Original Message-----
>> From: Jani Nikula <jani.nikula@linux.intel.com>
>> Sent: Tuesday, October 11, 2022 12:28 AM
>> To: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; intel-
>> gfx@lists.freedesktop.org
>> Cc: dri-devel@lists.freedesktop.org; Sripada, Radhakrishna
>> <radhakrishna.sripada@intel.com>; De Marchi, Lucas
>> <lucas.demarchi@intel.com>; Roper, Matthew D
>> <matthew.d.roper@intel.com>
>> Subject: Re: [PATCH] drm/i915: Use graphics ver, rel info for media on old
>> platforms
>> 
>> On Mon, 10 Oct 2022, Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>> wrote:
>> > Platforms prior to MTL do not have a separate media and graphics version.
>> > On platforms where GMD id is not supported, reuse the graphics ip version,
>> > release info for media.
>> >
>> > The rest of the IP graphics, display versions would be copied during driver
>> > creation.
>> >
>> > While at it warn if GMD is not used for platforms greater than gen12.
>> >
>> > Fixes: c2c7075225ef ("drm/i915: Read graphics/media/display arch version
>> from hw")
>> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
>> > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> > Cc: Matt Roper <matthew.d.roper@intel.com>
>> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
>> > ---
>> >  drivers/gpu/drm/i915/intel_device_info.c | 12 +++++++++++-
>> >  1 file changed, 11 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c
>> b/drivers/gpu/drm/i915/intel_device_info.c
>> > index 090097bb3c0a..ba178b61bceb 100644
>> > --- a/drivers/gpu/drm/i915/intel_device_info.c
>> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
>> > @@ -329,8 +329,18 @@ static void intel_ipver_early_init(struct
>> drm_i915_private *i915)
>> >  {
>> >  	struct intel_runtime_info *runtime = RUNTIME_INFO(i915);
>> >
>> > -	if (!HAS_GMD_ID(i915))
>> > +	if (!HAS_GMD_ID(i915)) {
>> > +		drm_WARN_ON(&i915->drm, RUNTIME_INFO(i915)-
>> >graphics.ip.ver > 12);
>> > +		/*
>> > +		 * On older platforms, graphics and media share the same ip
>> > +		 * version and release.
>> > +		 */
>> > +		RUNTIME_INFO(i915)->media.ip.ver =
>> > +			RUNTIME_INFO(i915)->graphics.ip.ver;
>> > +		RUNTIME_INFO(i915)->media.ip.rel =
>> > +			RUNTIME_INFO(i915)->graphics.ip.rel;
>> 
>> You could assign the whole struct ip_version (*) at once, or is there a
>> reason you're intentionally not assigning step?
> Step info would anyways be determined later in the function intel_step_init.
> We already have macros in place to handle common gt and media steps there.
>
> Do you suggest we memcpy(&RUNTIME_INFO(i915)->media.ip, &RUNTIME_INFO->graphics.ip, sizeof(struct ip_version)) here?

Simple assign should do it for such a small struct.

BR,
Jani.

>
>> 
>> BR,
>> Jani.
>> 
>> (*) Why does that name not have intel_ prefix?
> Good question. Since introduced in " a5b7ef27da60 drm/i915: Add struct to hold IP version"
> we have been using as is. The author might have felt that the structure is not big enough/used in as many places
> to have an intel_ prefix. Do you see a symbol collision here that we
> need to add intel_ prefix?

It's not just about avoiding any immediate symbol collisions, it's also
about setting an example. People see this and think it's fine not to
have the prefix. And then the practice proliferates until there's a
collision.

> If so should we do it in a separate patch?

If there's a semantically separate change, it should always be a
separate patch.

BR,
Jani.

>
> Thanks,
> Radhakrishna(RK) Sripada
>> 
>> >  		return;
>> > +	}
>> >
>> >  	ip_ver_read(i915, i915_mmio_reg_offset(GMD_ID_GRAPHICS),
>> >  		    &runtime->graphics.ip);
>> 
>> --
>> Jani Nikula, Intel Open Source Graphics Center
Ville Syrjälä Oct. 11, 2022, 10:32 a.m. UTC | #4
On Tue, Oct 11, 2022 at 01:10:26PM +0300, Jani Nikula wrote:
> On Tue, 11 Oct 2022, "Sripada, Radhakrishna" <radhakrishna.sripada@intel.com> wrote:
> > Hi Jani,
> >
> >> -----Original Message-----
> >> From: Jani Nikula <jani.nikula@linux.intel.com>
> >> Sent: Tuesday, October 11, 2022 12:28 AM
> >> To: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; intel-
> >> gfx@lists.freedesktop.org
> >> Cc: dri-devel@lists.freedesktop.org; Sripada, Radhakrishna
> >> <radhakrishna.sripada@intel.com>; De Marchi, Lucas
> >> <lucas.demarchi@intel.com>; Roper, Matthew D
> >> <matthew.d.roper@intel.com>
> >> Subject: Re: [PATCH] drm/i915: Use graphics ver, rel info for media on old
> >> platforms
> >> 
> >> On Mon, 10 Oct 2022, Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> >> wrote:
> >> > Platforms prior to MTL do not have a separate media and graphics version.
> >> > On platforms where GMD id is not supported, reuse the graphics ip version,
> >> > release info for media.
> >> >
> >> > The rest of the IP graphics, display versions would be copied during driver
> >> > creation.
> >> >
> >> > While at it warn if GMD is not used for platforms greater than gen12.
> >> >
> >> > Fixes: c2c7075225ef ("drm/i915: Read graphics/media/display arch version
> >> from hw")
> >> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> >> > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> >> > Cc: Matt Roper <matthew.d.roper@intel.com>
> >> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> >> > ---
> >> >  drivers/gpu/drm/i915/intel_device_info.c | 12 +++++++++++-
> >> >  1 file changed, 11 insertions(+), 1 deletion(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c
> >> b/drivers/gpu/drm/i915/intel_device_info.c
> >> > index 090097bb3c0a..ba178b61bceb 100644
> >> > --- a/drivers/gpu/drm/i915/intel_device_info.c
> >> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
> >> > @@ -329,8 +329,18 @@ static void intel_ipver_early_init(struct
> >> drm_i915_private *i915)
> >> >  {
> >> >  	struct intel_runtime_info *runtime = RUNTIME_INFO(i915);
> >> >
> >> > -	if (!HAS_GMD_ID(i915))
> >> > +	if (!HAS_GMD_ID(i915)) {
> >> > +		drm_WARN_ON(&i915->drm, RUNTIME_INFO(i915)-
> >> >graphics.ip.ver > 12);
> >> > +		/*
> >> > +		 * On older platforms, graphics and media share the same ip
> >> > +		 * version and release.
> >> > +		 */
> >> > +		RUNTIME_INFO(i915)->media.ip.ver =
> >> > +			RUNTIME_INFO(i915)->graphics.ip.ver;
> >> > +		RUNTIME_INFO(i915)->media.ip.rel =
> >> > +			RUNTIME_INFO(i915)->graphics.ip.rel;
> >> 
> >> You could assign the whole struct ip_version (*) at once, or is there a
> >> reason you're intentionally not assigning step?
> > Step info would anyways be determined later in the function intel_step_init.
> > We already have macros in place to handle common gt and media steps there.
> >
> > Do you suggest we memcpy(&RUNTIME_INFO(i915)->media.ip, &RUNTIME_INFO->graphics.ip, sizeof(struct ip_version)) here?
> 
> Simple assign should do it for such a small struct.

IMO for any struct. Only use memcpy() when copying arrays and such.
Sripada, Radhakrishna Oct. 11, 2022, 6:57 p.m. UTC | #5
Thank you for the feedback. Incorporated the review and posted new patches here [1].

Thanks,
Radhakrishna(RK) Sripada

[1] https://patchwork.freedesktop.org/series/109588/

> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: Tuesday, October 11, 2022 3:33 AM
> To: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; intel-
> gfx@lists.freedesktop.org; De Marchi, Lucas <lucas.demarchi@intel.com>; dri-
> devel@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH] drm/i915: Use graphics ver, rel info for media on
> old platforms
> 
> On Tue, Oct 11, 2022 at 01:10:26PM +0300, Jani Nikula wrote:
> > On Tue, 11 Oct 2022, "Sripada, Radhakrishna"
> <radhakrishna.sripada@intel.com> wrote:
> > > Hi Jani,
> > >
> > >> -----Original Message-----
> > >> From: Jani Nikula <jani.nikula@linux.intel.com>
> > >> Sent: Tuesday, October 11, 2022 12:28 AM
> > >> To: Sripada, Radhakrishna <radhakrishna.sripada@intel.com>; intel-
> > >> gfx@lists.freedesktop.org
> > >> Cc: dri-devel@lists.freedesktop.org; Sripada, Radhakrishna
> > >> <radhakrishna.sripada@intel.com>; De Marchi, Lucas
> > >> <lucas.demarchi@intel.com>; Roper, Matthew D
> > >> <matthew.d.roper@intel.com>
> > >> Subject: Re: [PATCH] drm/i915: Use graphics ver, rel info for media on old
> > >> platforms
> > >>
> > >> On Mon, 10 Oct 2022, Radhakrishna Sripada
> <radhakrishna.sripada@intel.com>
> > >> wrote:
> > >> > Platforms prior to MTL do not have a separate media and graphics
> version.
> > >> > On platforms where GMD id is not supported, reuse the graphics ip
> version,
> > >> > release info for media.
> > >> >
> > >> > The rest of the IP graphics, display versions would be copied during driver
> > >> > creation.
> > >> >
> > >> > While at it warn if GMD is not used for platforms greater than gen12.
> > >> >
> > >> > Fixes: c2c7075225ef ("drm/i915: Read graphics/media/display arch
> version
> > >> from hw")
> > >> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > >> > Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> > >> > Cc: Matt Roper <matthew.d.roper@intel.com>
> > >> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> > >> > ---
> > >> >  drivers/gpu/drm/i915/intel_device_info.c | 12 +++++++++++-
> > >> >  1 file changed, 11 insertions(+), 1 deletion(-)
> > >> >
> > >> > diff --git a/drivers/gpu/drm/i915/intel_device_info.c
> > >> b/drivers/gpu/drm/i915/intel_device_info.c
> > >> > index 090097bb3c0a..ba178b61bceb 100644
> > >> > --- a/drivers/gpu/drm/i915/intel_device_info.c
> > >> > +++ b/drivers/gpu/drm/i915/intel_device_info.c
> > >> > @@ -329,8 +329,18 @@ static void intel_ipver_early_init(struct
> > >> drm_i915_private *i915)
> > >> >  {
> > >> >  	struct intel_runtime_info *runtime = RUNTIME_INFO(i915);
> > >> >
> > >> > -	if (!HAS_GMD_ID(i915))
> > >> > +	if (!HAS_GMD_ID(i915)) {
> > >> > +		drm_WARN_ON(&i915->drm, RUNTIME_INFO(i915)-
> > >> >graphics.ip.ver > 12);
> > >> > +		/*
> > >> > +		 * On older platforms, graphics and media share the same ip
> > >> > +		 * version and release.
> > >> > +		 */
> > >> > +		RUNTIME_INFO(i915)->media.ip.ver =
> > >> > +			RUNTIME_INFO(i915)->graphics.ip.ver;
> > >> > +		RUNTIME_INFO(i915)->media.ip.rel =
> > >> > +			RUNTIME_INFO(i915)->graphics.ip.rel;
> > >>
> > >> You could assign the whole struct ip_version (*) at once, or is there a
> > >> reason you're intentionally not assigning step?
> > > Step info would anyways be determined later in the function intel_step_init.
> > > We already have macros in place to handle common gt and media steps
> there.
> > >
> > > Do you suggest we memcpy(&RUNTIME_INFO(i915)->media.ip,
> &RUNTIME_INFO->graphics.ip, sizeof(struct ip_version)) here?
> >
> > Simple assign should do it for such a small struct.
> 
> IMO for any struct. Only use memcpy() when copying arrays and such.
> 
> --
> Ville Syrjälä
> Intel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
index 090097bb3c0a..ba178b61bceb 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -329,8 +329,18 @@  static void intel_ipver_early_init(struct drm_i915_private *i915)
 {
 	struct intel_runtime_info *runtime = RUNTIME_INFO(i915);
 
-	if (!HAS_GMD_ID(i915))
+	if (!HAS_GMD_ID(i915)) {
+		drm_WARN_ON(&i915->drm, RUNTIME_INFO(i915)->graphics.ip.ver > 12);
+		/*
+		 * On older platforms, graphics and media share the same ip
+		 * version and release.
+		 */
+		RUNTIME_INFO(i915)->media.ip.ver =
+			RUNTIME_INFO(i915)->graphics.ip.ver;
+		RUNTIME_INFO(i915)->media.ip.rel =
+			RUNTIME_INFO(i915)->graphics.ip.rel;
 		return;
+	}
 
 	ip_ver_read(i915, i915_mmio_reg_offset(GMD_ID_GRAPHICS),
 		    &runtime->graphics.ip);