diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 6dbe14cc4f74..7792c8f7c6dd 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -53,7 +53,7 @@ extern int intel_agp_enabled; | |||
53 | 53 | ||
54 | #define INTEL_VGA_DEVICE(id, info) { \ | 54 | #define INTEL_VGA_DEVICE(id, info) { \ |
55 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ | 55 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ |
56 | .class_mask = 0xffff00, \ | 56 | .class_mask = 0xff0000, \ |
57 | .vendor = 0x8086, \ | 57 | .vendor = 0x8086, \ |
58 | .device = id, \ | 58 | .device = id, \ |
59 | .subvendor = PCI_ANY_ID, \ | 59 | .subvendor = PCI_ANY_ID, \ |
@@ -414,6 +414,14 @@ int i965_reset(struct drm_device *dev, u8 flags) | |||
414 | static int __devinit | 414 | static int __devinit |
415 | i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 415 | i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
416 | { | 416 | { |
417 | /* Only bind to function 0 of the device. Early generations | ||
418 | * used function 1 as a placeholder for multi-head. This causes | ||
419 | * us confusion instead, especially on the systems where both | ||
420 | * functions have the same PCI-ID! | ||
421 | */ | ||
422 | if (PCI_FUNC(pdev->devfn)) | ||
423 | return -ENODEV; | ||
424 | |||
417 | return drm_get_pci_dev(pdev, ent, &driver); | 425 | return drm_get_pci_dev(pdev, ent, &driver); |
418 | } | 426 | } |
419 | 427 | ||