menuconfig SND_HDA_INTEL
	tristate "Intel HD Audio"
	select SND_PCM
	select SND_VMASTER
	select SND_JACK if INPUT=y || INPUT=SND
	help
	  Say Y here to include support for Intel "High Definition
	  Audio" (Azalia) and its compatible devices.

	  This option enables the HD-audio controller.  Don't forget
	  to choose the appropriate codec options below.

	  To compile this driver as a module, choose M here: the module
	  will be called snd-hda-intel.

if SND_HDA_INTEL

config SND_HDA_HWDEP
	bool "Build hwdep interface for HD-audio driver"
	select SND_HWDEP
	help
	  Say Y here to build a hwdep interface for HD-audio driver.
	  This interface can be used for out-of-band communication
	  with codecs for debugging purposes.

config SND_HDA_RECONFIG
	bool "Allow dynamic codec reconfiguration (EXPERIMENTAL)"
	depends on SND_HDA_HWDEP && EXPERIMENTAL
	help
	  Say Y here to enable the HD-audio codec re-configuration feature.
	  This adds the sysfs interfaces to allow user to clear the whole
	  codec configuration, change the codec setup, add extra verbs,
	  and re-configure the codec dynamically.

config SND_HDA_INPUT_BEEP
	bool "Support digital beep via input layer"
	depends on INPUT=y || INPUT=SND_HDA_INTEL
	help
	  Say Y here to build a digital beep interface for HD-audio
	  driver. This interface is used to generate digital beeps.

config SND_HDA_CODEC_REALTEK
	bool "Build Realtek HD-audio codec support"
	default y
	help
	  Say Y here to include Realtek HD-audio codec support in
	  snd-hda-intel driver, such as ALC880.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-realtek.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_ANALOG
	bool "Build Analog Device HD-audio codec support"
	default y
	help
	  Say Y here to include Analog Device HD-audio codec support in
	  snd-hda-intel driver, such as AD1986A.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-analog.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_SIGMATEL
	bool "Build IDT/Sigmatel HD-audio codec support"
	default y
	help
	  Say Y here to include IDT (Sigmatel) HD-audio codec support in
	  snd-hda-intel driver, such as STAC9200.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-idt.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_VIA
	bool "Build VIA HD-audio codec support"
	default y
	help
	  Say Y here to include VIA HD-audio codec support in
	  snd-hda-intel driver, such as VT1708.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-via.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_ATIHDMI
	bool "Build ATI HDMI HD-audio codec support"
	default y
	help
	  Say Y here to include ATI HDMI HD-audio codec support in
	  snd-hda-intel driver, such as ATI RS600 HDMI.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-atihdmi.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_NVHDMI
	bool "Build NVIDIA HDMI HD-audio codec support"
	default y
	help
	  Say Y here to include NVIDIA HDMI HD-audio codec support in
	  snd-hda-intel driver, such as NVIDIA MCP78 HDMI.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-nvhdmi.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_INTELHDMI
	bool "Build INTEL HDMI HD-audio codec support"
	default y
	help
	  Say Y here to include INTEL HDMI HD-audio codec support in
	  snd-hda-intel driver, such as Eaglelake integrated HDMI.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-intelhdmi.
	  This module is automatically loaded at probing.

config SND_HDA_ELD
	def_bool y
	depends on SND_HDA_CODEC_INTELHDMI

config SND_HDA_CODEC_CONEXANT
	bool "Build Conexant HD-audio codec support"
	default y
	help
	  Say Y here to include Conexant HD-audio codec support in
	  snd-hda-intel driver, such as CX20549.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-conexant.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_CA0110
	bool "Build Creative CA0110-IBG codec support"
	depends on SND_HDA_INTEL
	default y
	help
	  Say Y here to include Creative CA0110-IBG codec support in
	  snd-hda-intel driver, found on some Creative X-Fi cards.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-ca0110.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_CMEDIA
	bool "Build C-Media HD-audio codec support"
	default y
	help
	  Say Y here to include C-Media HD-audio codec support in
	  snd-hda-intel driver, such as CMI9880.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-cmedia.
	  This module is automatically loaded at probing.

config SND_HDA_CODEC_SI3054
	bool "Build Silicon Labs 3054 HD-modem codec support"
	default y
	help
	  Say Y here to include Silicon Labs 3054 HD-modem codec
	  (and compatibles) support in snd-hda-intel driver.

	  When the HD-audio driver is built as a module, the codec
	  support code is also built as another module,
	  snd-hda-codec-si3054.
	  This module is automatically loaded at probing.

config SND_HDA_GENERIC
	bool "Enable generic HD-audio codec parser"
	default y
	help
	  Say Y here to enable the generic HD-audio codec parser
	  in snd-hda-intel driver.

config SND_HDA_POWER_SAVE
	bool "Aggressive power-saving on HD-audio"
	help
	  Say Y here to enable more aggressive power-saving mode on
	  HD-audio driver.  The power-saving timeout can be configured
	  via power_save option or over sysfs on-the-fly.

config SND_HDA_POWER_SAVE_DEFAULT
	int "Default time-out for HD-audio power-save mode"
	depends on SND_HDA_POWER_SAVE
	default 0
	help
	  The default time-out value in seconds for HD-audio automatic
	  power-save mode.  0 means to disable the power-save mode.

endif
