diff mbox

[RFC,3/3] drm/i915: actually drive the BDW reserved IDs

Message ID 1483473860-17644-3-git-send-email-paulo.r.zanoni@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zanoni, Paulo R Jan. 3, 2017, 8:04 p.m. UTC
Back in 2014, commit fb7023e0e248 ("drm/i915: BDW: Adding Reserved PCI
IDs.") added the reserved PCI IDs in order to try to make sure we had
working drivers in case we ever released products using these IDs
(since we had instances of this type of problem in the past). The
problem is that the patch only touched the macros used by
early-quirks.c and by the user space components that rely on
i915_pciids.h, it didn't touch the macros used by i915_pci.c. So we
correctly handled the stolen memory for these theoretical IDs, but we
didn't actually drive the devices from i915.ko.

So this patch fixes the original commit by actually making i915.ko
drive these IDs, which was the goal. There's no information on what
would be the GT count on these IDs, so we just go with the safer
intel_broadwell_info, at the risk of ignoring a possibly inexistent
BSD2_RING.

I did some checking, and it seems that these IDs are driven by
intel-gpu-tools, xf86-video-intel and libdrm (since they contain old
copies of i915_pciids.h), but they are not checked by mesa.

The alternative to this patch would be to just assume we're actually
never going to use these IDs, and then remove them from our ID lists
and make sure our user space components sync the latest i915_pciids.h
copy. I'm fine with either approaches, as long as we make sure that
every component tries to drive the same list of PCI IDs.

Fixes: fb7023e0e248 ("drm/i915: BDW: Adding Reserved PCI IDs.")
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
 drivers/gpu/drm/i915/i915_pci.c | 1 +
 1 file changed, 1 insertion(+)

I'm not even sure if this deserves a Cc: stable tag...

Comments

Rodrigo Vivi Jan. 3, 2017, 8:32 p.m. UTC | #1
On Tue, 2017-01-03 at 18:04 -0200, Paulo Zanoni wrote:
> Back in 2014, commit fb7023e0e248 ("drm/i915: BDW: Adding Reserved PCI

> IDs.") added the reserved PCI IDs in order to try to make sure we had

> working drivers in case we ever released products using these IDs

> (since we had instances of this type of problem in the past). The

> problem is that the patch only touched the macros used by

> early-quirks.c and by the user space components that rely on

> i915_pciids.h, it didn't touch the macros used by i915_pci.c. So we

> correctly handled the stolen memory for these theoretical IDs, but we

> didn't actually drive the devices from i915.ko.

> 

> So this patch fixes the original commit by actually making i915.ko

> drive these IDs, which was the goal. There's no information on what

> would be the GT count on these IDs, so we just go with the safer

> intel_broadwell_info, at the risk of ignoring a possibly inexistent

> BSD2_RING.

> 

> I did some checking, and it seems that these IDs are driven by

> intel-gpu-tools, xf86-video-intel and libdrm (since they contain old

> copies of i915_pciids.h), but they are not checked by mesa.

> 

> The alternative to this patch would be to just assume we're actually

> never going to use these IDs, and then remove them from our ID lists

> and make sure our user space components sync the latest i915_pciids.h

> copy. I'm fine with either approaches, as long as we make sure that

> every component tries to drive the same list of PCI IDs.


I prefer to assume that it is possible that this device will be used at
some point since it is on spec as reserved.

So,
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>


> 

> Fixes: fb7023e0e248 ("drm/i915: BDW: Adding Reserved PCI IDs.")

> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>

> Cc: Ben Widawsky <ben@bwidawsk.net>

> Cc: Jani Nikula <jani.nikula@intel.com>

> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>

> ---

>  drivers/gpu/drm/i915/i915_pci.c | 1 +

>  1 file changed, 1 insertion(+)

> 

> I'm not even sure if this deserves a Cc: stable tag...

> 

> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c

> index 7435a73..ecb487b 100644

> --- a/drivers/gpu/drm/i915/i915_pci.c

> +++ b/drivers/gpu/drm/i915/i915_pci.c

> @@ -456,6 +456,7 @@ static const struct pci_device_id pciidlist[] = {

>  	INTEL_VLV_IDS(&intel_valleyview_info),

>  	INTEL_BDW_GT12_IDS(&intel_broadwell_info),

>  	INTEL_BDW_GT3_IDS(&intel_broadwell_gt3_info),

> +	INTEL_BDW_RSVD_IDS(&intel_broadwell_info),

>  	INTEL_CHV_IDS(&intel_cherryview_info),

>  	INTEL_SKL_GT1_IDS(&intel_skylake_info),

>  	INTEL_SKL_GT2_IDS(&intel_skylake_info),
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index 7435a73..ecb487b 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -456,6 +456,7 @@  static const struct pci_device_id pciidlist[] = {
 	INTEL_VLV_IDS(&intel_valleyview_info),
 	INTEL_BDW_GT12_IDS(&intel_broadwell_info),
 	INTEL_BDW_GT3_IDS(&intel_broadwell_gt3_info),
+	INTEL_BDW_RSVD_IDS(&intel_broadwell_info),
 	INTEL_CHV_IDS(&intel_cherryview_info),
 	INTEL_SKL_GT1_IDS(&intel_skylake_info),
 	INTEL_SKL_GT2_IDS(&intel_skylake_info),