diff options
-rw-r--r-- | drivers/char/agp/intel-agp.c | 10 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index 918e484f41b7..c1c07a2ccb11 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -10,6 +10,9 @@ | |||
10 | #include <linux/agp_backend.h> | 10 | #include <linux/agp_backend.h> |
11 | #include "agp.h" | 11 | #include "agp.h" |
12 | 12 | ||
13 | int intel_agp_enabled; | ||
14 | EXPORT_SYMBOL(intel_agp_enabled); | ||
15 | |||
13 | /* | 16 | /* |
14 | * If we have Intel graphics, we're not going to have anything other than | 17 | * If we have Intel graphics, we're not going to have anything other than |
15 | * an Intel IOMMU. So make the correct use of the PCI DMA API contingent | 18 | * an Intel IOMMU. So make the correct use of the PCI DMA API contingent |
@@ -2473,7 +2476,7 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev, | |||
2473 | struct agp_bridge_data *bridge; | 2476 | struct agp_bridge_data *bridge; |
2474 | u8 cap_ptr = 0; | 2477 | u8 cap_ptr = 0; |
2475 | struct resource *r; | 2478 | struct resource *r; |
2476 | int i; | 2479 | int i, err; |
2477 | 2480 | ||
2478 | cap_ptr = pci_find_capability(pdev, PCI_CAP_ID_AGP); | 2481 | cap_ptr = pci_find_capability(pdev, PCI_CAP_ID_AGP); |
2479 | 2482 | ||
@@ -2565,7 +2568,10 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev, | |||
2565 | } | 2568 | } |
2566 | 2569 | ||
2567 | pci_set_drvdata(pdev, bridge); | 2570 | pci_set_drvdata(pdev, bridge); |
2568 | return agp_add_bridge(bridge); | 2571 | err = agp_add_bridge(bridge); |
2572 | if (!err) | ||
2573 | intel_agp_enabled = 1; | ||
2574 | return err; | ||
2569 | } | 2575 | } |
2570 | 2576 | ||
2571 | static void __devexit agp_intel_remove(struct pci_dev *pdev) | 2577 | static void __devexit agp_intel_remove(struct pci_dev *pdev) |
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 2a9178bb2748..85ad020125c8 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -49,6 +49,7 @@ unsigned int i915_lvds_downclock = 0; | |||
49 | module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400); | 49 | module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400); |
50 | 50 | ||
51 | static struct drm_driver driver; | 51 | static struct drm_driver driver; |
52 | extern int intel_agp_enabled; | ||
52 | 53 | ||
53 | #define INTEL_VGA_DEVICE(id, info) { \ | 54 | #define INTEL_VGA_DEVICE(id, info) { \ |
54 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ | 55 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ |
@@ -558,6 +559,11 @@ static struct drm_driver driver = { | |||
558 | 559 | ||
559 | static int __init i915_init(void) | 560 | static int __init i915_init(void) |
560 | { | 561 | { |
562 | if (!intel_agp_enabled) { | ||
563 | DRM_ERROR("drm/i915 can't work without intel_agp module!\n"); | ||
564 | return -ENODEV; | ||
565 | } | ||
566 | |||
561 | driver.num_ioctls = i915_max_ioctl; | 567 | driver.num_ioctls = i915_max_ioctl; |
562 | 568 | ||
563 | i915_gem_shrinker_init(); | 569 | i915_gem_shrinker_init(); |