config AGP
	tristate "/dev/agpgart (AGP Support)"
	depends on ALPHA || IA64 || PPC || X86
	---help---
	  AGP (Accelerated Graphics Port) is a bus system mainly used to
	  connect graphics cards to the rest of the system.

	  If you have an AGP system and you say Y here, it will be possible to
	  use the AGP features of your 3D rendering video card. This code acts
	  as a sort of "AGP driver" for the motherboard's chipset.

	  If you need more texture memory than you can get with the AGP GART
	  (theoretically up to 256 MB, but in practice usually 64 or 128 MB
	  due to kernel allocation issues), you could use PCI accesses
	  and have up to a couple gigs of texture space.

	  Note that this is the only means to have X/GLX use
	  write-combining with MTRR support on the AGP bus. Without it, OpenGL
	  direct rendering will be a lot slower but still faster than PIO.

	  To compile this driver as a module, choose M here: the
	  module will be called agpgart.

	  You should say Y here if you want to use GLX or DRI.

	  If unsure, say N.

config AGP_ALI
	tristate "ALI chipset support"
	depends on AGP && X86_32
	---help---
	  This option gives you AGP support for the GLX component of
	  X on the following ALi chipsets.  The supported chipsets
	  include M1541, M1621, M1631, M1632, M1641,M1647,and M1651.
	  For the ALi-chipset question, ALi suggests you refer to
	  <http://www.ali.com.tw/eng/support/index.shtml>.

	  The M1541 chipset can do AGP 1x and 2x, but note that there is an
	  acknowledged incompatibility with Matrox G200 cards. Due to
	  timing issues, this chipset cannot do AGP 2x with the G200.
	  This is a hardware limitation. AGP 1x seems to be fine, though.

config AGP_ATI
	tristate "ATI chipset support"
	depends on AGP && X86_32
	---help---
	  This option gives you AGP support for the GLX component of
	  X on the ATI RadeonIGP family of chipsets.

config AGP_AMD
	tristate "AMD Irongate, 761, and 762 chipset support"
	depends on AGP && X86_32
	help
	  This option gives you AGP support for the GLX component of
	  X on AMD Irongate, 761, and 762 chipsets.

config AGP_AMD64
	tristate "AMD Opteron/Athlon64 on-CPU GART support" if !IOMMU
	depends on AGP && X86
	default y if IOMMU
	help
	  This option gives you AGP support for the GLX component of
	  X using the on-CPU northbridge of the AMD Athlon64/Opteron CPUs.
	  You still need an external AGP bridge like the AMD 8151, VIA
          K8T400M, SiS755. It may also support other AGP bridges when loaded
	  with agp_try_unsupported=1.

config AGP_INTEL
	tristate "Intel 440LX/BX/GX, I8xx and E7x05 chipset support"
	depends on AGP && X86
	help
	  This option gives you AGP support for the GLX component of X
	  on Intel 440LX/BX/GX, 815, 820, 830, 840, 845, 850, 860, 875,
	  E7205 and E7505 chipsets and full support for the 810, 815, 830M,
	  845G, 852GM, 855GM, 865G and I915 integrated graphics chipsets.



config AGP_NVIDIA
	tristate "NVIDIA nForce/nForce2 chipset support"
	depends on AGP && X86_32
	help
	  This option gives you AGP support for the GLX component of
	  X on NVIDIA chipsets including nForce and nForce2

config AGP_SIS
	tristate "SiS chipset support"
	depends on AGP
	help
	  This option gives you AGP support for the GLX component of
	  X on Silicon Integrated Systems [SiS] chipsets.

	  Note that 5591/5592 AGP chipsets are NOT supported.


config AGP_SWORKS
	tristate "Serverworks LE/HE chipset support"
	depends on AGP && X86_32
	help
	  Say Y here to support the Serverworks AGP card.  See
	  <http://www.serverworks.com/> for product descriptions and images.

config AGP_VIA
	tristate "VIA chipset support"
	depends on AGP
	help
	  This option gives you AGP support for the GLX component of
	  X on VIA MVP3/Apollo Pro chipsets.

config AGP_I460
	tristate "Intel 460GX chipset support"
	depends on AGP && (IA64_DIG || IA64_GENERIC)
	help
	  This option gives you AGP GART support for the Intel 460GX chipset
	  for IA64 processors.

config AGP_HP_ZX1
	tristate "HP ZX1 chipset AGP support"
	depends on AGP && (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC)
	help
	  This option gives you AGP GART support for the HP ZX1 chipset
	  for IA64 processors.

config AGP_ALPHA_CORE
	tristate "Alpha AGP support"
	depends on AGP && (ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL)
	default AGP

config AGP_UNINORTH
	tristate "Apple UniNorth & U3 AGP support"
	depends on AGP && PPC_PMAC
	help
	  This option gives you AGP support for Apple machines with a
	  UniNorth or U3 (Apple G5) bridge.

config AGP_EFFICEON
	tristate "Transmeta Efficeon support"
	depends on AGP && X86_32
	help
	  This option gives you AGP support for the Transmeta Efficeon
	  series processors with integrated northbridges.

config AGP_SGI_TIOCA
        tristate "SGI TIO chipset AGP support"
        depends on AGP && (IA64_SGI_SN2 || IA64_GENERIC)
        help
          This option gives you AGP GART support for the SGI TIO chipset
          for IA64 processors.

