[Intel-gfx] [PATCH 1/2] drm/i915/tgl: Set subplatforms

Dhanavanthri, Swathi swathi.dhanavanthri at intel.com
Fri Aug 7 17:51:46 UTC 2020


Reviewed-by: Swathi Dhanavanthri <swathi.dhanavanthri at intel.com>

-----Original Message-----
From: Souza, Jose <jose.souza at intel.com> 
Sent: Friday, August 07, 2020 10:32 AM
To: Dhanavanthri, Swathi <swathi.dhanavanthri at intel.com>; intel-gfx at lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 1/2] drm/i915/tgl: Set subplatforms

The default case would do nothing.

On Thu, 2020-08-06 at 19:02 -0700, Dhanavanthri, Swathi wrote:
> It might be helpful to add a default case in the switch statement for unsupported cases.
> 
> -----Original Message-----
> From: Intel-gfx <
> intel-gfx-bounces at lists.freedesktop.org
> > On Behalf Of José Roberto de Souza
> Sent: Monday, July 20, 2020 10:10 AM
> To: 
> intel-gfx at lists.freedesktop.org
> 
> Subject: [Intel-gfx] [PATCH 1/2] drm/i915/tgl: Set subplatforms
> 
> There is no way to differentiate TGL-U from TGL-Y by the PCI ids as some ids are available in both SKUs.
> So here using the root device id in the PCI bus that iGPU is in to differentiate between U and Y.
> 
> BSpec: 44455
> Signed-off-by: José Roberto de Souza < jose.souza at intel.com
> >
> ---
>  drivers/gpu/drm/i915/i915_drv.h          |  6 ++++++
>  drivers/gpu/drm/i915/i915_reg.h          |  6 ++++++
>  drivers/gpu/drm/i915/intel_device_info.c | 19 +++++++++++++++++++
>  3 files changed, 31 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h 
> b/drivers/gpu/drm/i915/i915_drv.h index 56dfc6d98caa..a59f64821920 
> 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1497,6 +1497,12 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,  #define IS_ICL_WITH_PORT_F(dev_priv) \
>  	IS_SUBPLATFORM(dev_priv, INTEL_ICELAKE, INTEL_SUBPLATFORM_PORTF)
>  
> +#define IS_TGL_U(dev_priv) \
> +	IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULT)
> +
> +#define IS_TGL_Y(dev_priv) \
> +	IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULX)
> +
>  #define SKL_REVID_A0		0x0
>  #define SKL_REVID_B0		0x1
>  #define SKL_REVID_C0		0x2
> diff --git a/drivers/gpu/drm/i915/i915_reg.h 
> b/drivers/gpu/drm/i915/i915_reg.h index a0d31f3bf634..6a0768cb01f6 
> 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -12363,4 +12363,10 @@ enum skl_power_gate {
>  #define   DSB_ENABLE			(1 << 31)
>  #define   DSB_STATUS			(1 << 0)
>  
> +#define TGL_ROOT_DEVICE_ID		0x9A00
> +#define TGL_ROOT_DEVICE_MASK		0xFF00
> +#define TGL_ROOT_DEVICE_SKU_MASK	0xF
> +#define TGL_ROOT_DEVICE_SKU_ULX		0x2
> +#define TGL_ROOT_DEVICE_SKU_ULT		0x4
> +
>  #endif /* _I915_REG_H_ */
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
> b/drivers/gpu/drm/i915/intel_device_info.c
> index 40c590db3c76..e2aa5bc3a6e0 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -346,6 +346,25 @@ void intel_device_info_subplatform_init(struct drm_i915_private *i915)
>  		mask = BIT(INTEL_SUBPLATFORM_PORTF);
>  	}
>  
> +	if (IS_TIGERLAKE(i915)) {
> +		struct pci_dev *root, *pdev = i915->drm.pdev;
> +
> +		root = list_first_entry(&pdev->bus->devices, typeof(*root), 
> +bus_list);
> +
> +		drm_WARN_ON(&i915->drm, mask);
> +		drm_WARN_ON(&i915->drm, (root->device & TGL_ROOT_DEVICE_MASK) !=
> +			    TGL_ROOT_DEVICE_ID);
> +
> +		switch (root->device & TGL_ROOT_DEVICE_SKU_MASK) {
> +		case TGL_ROOT_DEVICE_SKU_ULX:
> +			mask = BIT(INTEL_SUBPLATFORM_ULX);
> +			break;
> +		case TGL_ROOT_DEVICE_SKU_ULT:
> +			mask = BIT(INTEL_SUBPLATFORM_ULT);
> +			break;
> +		}
> +	}
> +
>  	GEM_BUG_ON(mask & ~INTEL_SUBPLATFORM_BITS);
>  
>  	RUNTIME_INFO(i915)->platform_mask[pi] |= mask;
> --
> 2.27.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> 
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> 


More information about the Intel-gfx mailing list