config DRM_I915
	tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
	depends on DRM
	depends on X86 && PCI
	depends on (AGP || AGP=n)
	select INTEL_GTT
	select AGP_INTEL if AGP
	# we need shmfs for the swappable backing store, and in particular
	# the shmem_readpage() which depends upon tmpfs
	select SHMEM
	select TMPFS
	select DRM_KMS_HELPER
	# i915 depends on ACPI_VIDEO when ACPI is enabled
	# but for select to work, need to select ACPI_VIDEO's dependencies, ick
	select BACKLIGHT_LCD_SUPPORT if ACPI
	select BACKLIGHT_CLASS_DEVICE if ACPI
	select VIDEO_OUTPUT_CONTROL if ACPI
	select INPUT if ACPI
	select ACPI_VIDEO if ACPI
	select ACPI_BUTTON if ACPI
	help
	  Choose this option if you have a system that has "Intel Graphics
	  Media Accelerator" or "HD Graphics" integrated graphics,
	  including 830M, 845G, 852GM, 855GM, 865G, 915G, 945G, 965G,
	  G35, G41, G43, G45 chipsets and Celeron, Pentium, Core i3,
	  Core i5, Core i7 as well as Atom CPUs with integrated graphics.
	  If M is selected, the module will be called i915.  AGP support
	  is required for this driver to work. This driver is used by
	  the Intel driver in X.org 6.8 and XFree86 4.4 and above. It
	  replaces the older i830 module that supported a subset of the
	  hardware in older X.org releases.

	  Note that the older i810/i815 chipsets require the use of the
	  i810 driver instead, and the Atom z5xx series has an entirely
	  different implementation.

config DRM_I915_KMS
	bool "Enable modesetting on intel by default"
	depends on DRM_I915
	default y
	help
	  Choose this option if you want kernel modesetting enabled by default.

	  If in doubt, say "Y".

config DRM_I915_FBDEV
	bool "Enable legacy fbdev support for the modesetting intel driver"
	depends on DRM_I915
	select DRM_KMS_FB_HELPER
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	default y
	help
	  Choose this option if you have a need for the legacy fbdev
	  support. Note that this support also provide the linux console
	  support on top of the intel modesetting driver.

	  If in doubt, say "Y".

config DRM_I915_PRELIMINARY_HW_SUPPORT
	bool "Enable preliminary support for prerelease Intel hardware by default"
	depends on DRM_I915
	default n
	help
	  Choose this option if you have prerelease Intel hardware and want the
	  i915 driver to support it by default.  You can enable such support at
	  runtime with the module option i915.preliminary_hw_support=1; this
	  option changes the default for that module option.

	  If in doubt, say "N".

config DRM_I915_UMS
	bool "Enable userspace modesetting on Intel hardware (DEPRECATED)"
	depends on DRM_I915
	default n
	help
	  Choose this option if you still need userspace modesetting.

	  Userspace modesetting is deprecated for quite some time now, so
	  enable this only if you have ancient versions of the DDX drivers.

	  If in doubt, say "N".
