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

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Aug 30 13:45:21 UTC 2017


On 30/08/17 14:41, Ville Syrjälä wrote:
> 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.
>
Thanks, fixing it up.



More information about the Intel-gfx mailing list