config DRM_NOUVEAU
	tristate "Nouveau (nVidia) cards"
	depends on DRM && PCI
        select FW_LOADER
	select DRM_KMS_HELPER
	select DRM_KMS_FB_HELPER
	select DRM_TTM
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	select FB
	select FRAMEBUFFER_CONSOLE if !EXPERT
	select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT
	select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL && INPUT
	select X86_PLATFORM_DEVICES if ACPI && X86
	select ACPI_WMI if ACPI && X86
	select MXM_WMI if ACPI && X86
	select POWER_SUPPLY
	# Similar to i915, we need to select ACPI_VIDEO and it's dependencies
	select BACKLIGHT_LCD_SUPPORT if ACPI && X86
	select BACKLIGHT_CLASS_DEVICE if ACPI && X86
	select VIDEO_OUTPUT_CONTROL if ACPI && X86
	select INPUT if ACPI && X86
	select THERMAL if ACPI && X86
	select ACPI_VIDEO if ACPI && X86
	help
	  Choose this option for open-source nVidia support.

config NOUVEAU_DEBUG
	int "Maximum debug level"
	depends on DRM_NOUVEAU
	range 0 7
	default 5
	help
	  Selects the maximum debug level to compile support for.

	  0 - fatal
	  1 - error
	  2 - warning
	  3 - info
	  4 - debug
	  5 - trace (recommended)
	  6 - paranoia
	  7 - spam

	  The paranoia and spam levels will add a lot of extra checks which
	  may potentially slow down driver operation.

config NOUVEAU_DEBUG_DEFAULT
	int "Default debug level"
	depends on DRM_NOUVEAU
	range 0 7
	default 3
	help
	  Selects the default debug level

config DRM_NOUVEAU_BACKLIGHT
	bool "Support for backlight control"
	depends on DRM_NOUVEAU
	default y
	help
	  Say Y here if you want to control the backlight of your display
	  (e.g. a laptop panel).
