aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/agp/amd64-agp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/agp/amd64-agp.c')
-rw-r--r--drivers/char/agp/amd64-agp.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c
index 2fb2e6cc322a..1afb8968a342 100644
--- a/drivers/char/agp/amd64-agp.c
+++ b/drivers/char/agp/amd64-agp.c
@@ -728,6 +728,10 @@ int __init agp_amd64_init(void)
728 728
729 if (agp_off) 729 if (agp_off)
730 return -EINVAL; 730 return -EINVAL;
731
732 if (gart_iommu_aperture)
733 return agp_bridges_found ? 0 : -ENODEV;
734
731 err = pci_register_driver(&agp_amd64_pci_driver); 735 err = pci_register_driver(&agp_amd64_pci_driver);
732 if (err < 0) 736 if (err < 0)
733 return err; 737 return err;
@@ -766,17 +770,15 @@ int __init agp_amd64_init(void)
766 770
767static void __exit agp_amd64_cleanup(void) 771static void __exit agp_amd64_cleanup(void)
768{ 772{
773 if (gart_iommu_aperture)
774 return;
769 if (aperture_resource) 775 if (aperture_resource)
770 release_resource(aperture_resource); 776 release_resource(aperture_resource);
771 pci_unregister_driver(&agp_amd64_pci_driver); 777 pci_unregister_driver(&agp_amd64_pci_driver);
772} 778}
773 779
774/* On AMD64 the PCI driver needs to initialize this driver early
775 for the IOMMU, so it has to be called via a backdoor. */
776#ifndef CONFIG_GART_IOMMU
777module_init(agp_amd64_init); 780module_init(agp_amd64_init);
778module_exit(agp_amd64_cleanup); 781module_exit(agp_amd64_cleanup);
779#endif
780 782
781MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen"); 783MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen");
782module_param(agp_try_unsupported, bool, 0); 784module_param(agp_try_unsupported, bool, 0);