diff mbox series

drm/xe/display: Fix ADL-N detection

Message ID 20240425181610.2704633-1-lucas.demarchi@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/xe/display: Fix ADL-N detection | expand

Commit Message

Lucas De Marchi April 25, 2024, 6:16 p.m. UTC
Contrary to i915, in xe ADL-N is kept as a different platform, not a
subplatform of ADL-P. Since the display side doesn't need to
differentiate between P and N, i.e. IS_ALDERLAKE_P_N() is never called,
just fixup the compat header to check for both P and N.

Moving ADL-N to be a subplatform would be more complex as the firmware
loading in xe only handles platforms, not subplatforms, as going forward
the direction is to check on IP version rather than
platforms/subplatforms.

Fix warning when initializing display:

	xe 0000:00:02.0: [drm:intel_pch_type [xe]] Found Alder Lake PCH
	------------[ cut here ]------------
	xe 0000:00:02.0: drm_WARN_ON(!((dev_priv)->info.platform == XE_ALDERLAKE_S) && !((dev_priv)->info.platform == XE_ALDERLAKE_P))

And wrong paths being taken on the display side.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Matt Roper April 25, 2024, 6:22 p.m. UTC | #1
On Thu, Apr 25, 2024 at 11:16:09AM -0700, Lucas De Marchi wrote:
> Contrary to i915, in xe ADL-N is kept as a different platform, not a
> subplatform of ADL-P. Since the display side doesn't need to
> differentiate between P and N, i.e. IS_ALDERLAKE_P_N() is never called,
> just fixup the compat header to check for both P and N.
> 
> Moving ADL-N to be a subplatform would be more complex as the firmware
> loading in xe only handles platforms, not subplatforms, as going forward
> the direction is to check on IP version rather than
> platforms/subplatforms.
> 
> Fix warning when initializing display:
> 
> 	xe 0000:00:02.0: [drm:intel_pch_type [xe]] Found Alder Lake PCH
> 	------------[ cut here ]------------
> 	xe 0000:00:02.0: drm_WARN_ON(!((dev_priv)->info.platform == XE_ALDERLAKE_S) && !((dev_priv)->info.platform == XE_ALDERLAKE_P))
> 
> And wrong paths being taken on the display side.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>

ADL-N uses exactly the same display IP as ADL-P (unlike on the GT side
where they differ), so

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> ---
>  drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> index ffaa4d2f1eed..cd4632276141 100644
> --- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> +++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
> @@ -78,7 +78,8 @@ static inline struct drm_i915_private *kdev_to_i915(struct device *kdev)
>  #define IS_ROCKETLAKE(dev_priv)	IS_PLATFORM(dev_priv, XE_ROCKETLAKE)
>  #define IS_DG1(dev_priv)        IS_PLATFORM(dev_priv, XE_DG1)
>  #define IS_ALDERLAKE_S(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_S)
> -#define IS_ALDERLAKE_P(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_P)
> +#define IS_ALDERLAKE_P(dev_priv) (IS_PLATFORM(dev_priv, XE_ALDERLAKE_P) || \
> +				  IS_PLATFORM(dev_priv, XE_ALDERLAKE_N))
>  #define IS_DG2(dev_priv)	IS_PLATFORM(dev_priv, XE_DG2)
>  #define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
>  #define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
> -- 
> 2.43.0
>
Lucas De Marchi April 26, 2024, 9:54 p.m. UTC | #2
On Thu, Apr 25, 2024 at 11:22:30AM GMT, Matt Roper wrote:
>On Thu, Apr 25, 2024 at 11:16:09AM -0700, Lucas De Marchi wrote:
>> Contrary to i915, in xe ADL-N is kept as a different platform, not a
>> subplatform of ADL-P. Since the display side doesn't need to
>> differentiate between P and N, i.e. IS_ALDERLAKE_P_N() is never called,
>> just fixup the compat header to check for both P and N.
>>
>> Moving ADL-N to be a subplatform would be more complex as the firmware
>> loading in xe only handles platforms, not subplatforms, as going forward
>> the direction is to check on IP version rather than
>> platforms/subplatforms.
>>
>> Fix warning when initializing display:
>>
>> 	xe 0000:00:02.0: [drm:intel_pch_type [xe]] Found Alder Lake PCH
>> 	------------[ cut here ]------------
>> 	xe 0000:00:02.0: drm_WARN_ON(!((dev_priv)->info.platform == XE_ALDERLAKE_S) && !((dev_priv)->info.platform == XE_ALDERLAKE_P))
>>
>> And wrong paths being taken on the display side.
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>
>ADL-N uses exactly the same display IP as ADL-P (unlike on the GT side
>where they differ), so
>
>Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

applied, thanks

Lucas De Marchi
diff mbox series

Patch

diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
index ffaa4d2f1eed..cd4632276141 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
@@ -78,7 +78,8 @@  static inline struct drm_i915_private *kdev_to_i915(struct device *kdev)
 #define IS_ROCKETLAKE(dev_priv)	IS_PLATFORM(dev_priv, XE_ROCKETLAKE)
 #define IS_DG1(dev_priv)        IS_PLATFORM(dev_priv, XE_DG1)
 #define IS_ALDERLAKE_S(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_S)
-#define IS_ALDERLAKE_P(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_P)
+#define IS_ALDERLAKE_P(dev_priv) (IS_PLATFORM(dev_priv, XE_ALDERLAKE_P) || \
+				  IS_PLATFORM(dev_priv, XE_ALDERLAKE_N))
 #define IS_DG2(dev_priv)	IS_PLATFORM(dev_priv, XE_DG2)
 #define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
 #define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)