[Intel-gfx] [PATCH v3 1/3] drm/i915: add GT number to intel_device_info

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Aug 30 13:41:20 UTC 2017


On Tue, Aug 29, 2017 at 09:42:02PM +0100, Lionel Landwerlin wrote:
> Up to Coffeelake we could deduce this GT number from the device ID.
> This doesn't seem to be the case anymore. This change reorders pciids
> per GT and adds a gt field to intel_device_info. We set this field on
> the following platforms :
> 
>    - SNB/IVB/HSW/BDW/SKL/KBL/CFL/CNL
> 
> v2: Add SNB & IVB (Chris)
> 
> v3: Fix compilation error in early-quirks (Lionel)
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h |   1 +
>  drivers/gpu/drm/i915/i915_pci.c | 193 +++++++++++++++++++++++++++++++---------
>  include/drm/i915_pciids.h       | 152 +++++++++++++++++++------------
>  3 files changed, 246 insertions(+), 100 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 0383e879a315..3d417537bd59 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -842,6 +842,7 @@ struct intel_device_info {
>  	u8 gen;
>  	u16 gen_mask;
>  	enum intel_platform platform;
> +	u8 gt; /* GT number, 0 if undefined */
>  	u8 ring_mask; /* Rings supported by the HW */
>  	u8 num_rings;
>  #define DEFINE_FLAG(name) u8 name:1
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index a1e6b696bcfa..0ac733baa734 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -224,15 +224,34 @@ static const struct intel_device_info intel_ironlake_m_info = {
>  	GEN_DEFAULT_PIPEOFFSETS, \
>  	CURSOR_OFFSETS
>  
> -static const struct intel_device_info intel_sandybridge_d_info = {
> -	GEN6_FEATURES,
> -	.platform = INTEL_SANDYBRIDGE,
> +#define SNB_D_PLATFORM \
> +	GEN6_FEATURES, \
> +	.platform = INTEL_SANDYBRIDGE
> +
> +static const struct intel_device_info intel_sandybridge_d_gt1_info = {
> +	SNB_D_PLATFORM,
> +	.gt = 1,
>  };
>  
> -static const struct intel_device_info intel_sandybridge_m_info = {
> -	GEN6_FEATURES,
> -	.platform = INTEL_SANDYBRIDGE,
> -	.is_mobile = 1,
> +static const struct intel_device_info intel_sandybridge_d_gt2_info = {
> +	SNB_D_PLATFORM,
> +	.gt = 2,
> +};
> +
> +#define SNB_M_PLATFORM \
> +	GEN6_FEATURES, \
> +	.platform = INTEL_SANDYBRIDGE, \
> +	.is_mobile = 1
> +
> +
> +static const struct intel_device_info intel_sandybridge_m_gt1_info = {
> +	SNB_M_PLATFORM,
> +	.gt = 1,
> +};
> +
> +static const struct intel_device_info intel_sandybridge_m_gt2_info = {
> +	SNB_M_PLATFORM,
> +	.gt = 2,
>  };
>  
>  #define GEN7_FEATURES  \
> @@ -249,22 +268,41 @@ static const struct intel_device_info intel_sandybridge_m_info = {
>  	GEN_DEFAULT_PIPEOFFSETS, \
>  	IVB_CURSOR_OFFSETS
>  
> -static const struct intel_device_info intel_ivybridge_d_info = {
> -	GEN7_FEATURES,
> -	.platform = INTEL_IVYBRIDGE,
> -	.has_l3_dpf = 1,
> +#define IVB_D_FEATURES \

FEATURES vs. PLATFORM seem to be used in an inconsistent manner.

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list