menuconfig AGP
	tristate "/dev/agpgart (AGP Support)"
	depends on ALPHA || IA64 || PARISC || PPC || X86
	depends on PCI
	---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/>.

	  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"
	depends on AGP && X86 && AMD_NB
	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
	select INTEL_GTT
	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 && X86
	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 && X86
	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_PARISC
	tristate "HP Quicksilver AGP support"
	depends on AGP && PARISC && 64BIT
	help
	  This option gives you AGP GART support for the HP Quicksilver
	  AGP bus adapter on HP PA-RISC machines (Ok, just on the C8000
	  workstation...)

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.

config INTEL_GTT
	tristate
	depends on X86 && PCI

