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 !GART_IOMMU
	depends on AGP && X86
	default y if GART_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.

