drm/i915: actually drive the BDW reserved IDs
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Tue, 3 Jan 2017 20:04:20 +0000 (18:04 -0200)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Wed, 4 Jan 2017 16:40:46 +0000 (14:40 -0200)
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>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1483473860-17644-3-git-send-email-paulo.r.zanoni@intel.com
drivers/gpu/drm/i915/i915_pci.c

index 7435a73f6bc6c169a8c1db1b5a39292d8eb992aa..ecb487b5356fe68696b19d3054dc61339a61f406 100644 (file)
@@ -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),