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 || ALPHA)
	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
	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.

