menu "HD-Audio"

config SND_HDA
	tristate
	select SND_PCM
	select SND_VMASTER
	select SND_JACK if INPUT=y || INPUT=SND
	select SND_HDA_CORE

config SND_HDA_INTEL
	tristate "HD Audio PCI"
	depends on SND_PCI
	select SND_HDA
	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.

config SND_HDA_TEGRA
	tristate "NVIDIA Tegra HD Audio"
	depends on ARCH_TEGRA
	select SND_HDA
	help
	  Say Y here to support the HDA controller present in NVIDIA
	  Tegra SoCs

	  This options enables support for the HD Audio controller
	  present in some NVIDIA Tegra SoCs, used to communicate audio
	  to the HDMI output.

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

if SND_HDA

config SND_HDA_PREALLOC_SIZE
	int "Pre-allocated buffer size for HD-audio driver"
	range 0 32768
	default 64
	help
	  Specifies the default pre-allocated buffer-size in kB for the
	  HD-audio driver.  A larger buffer (e.g. 2048) is preferred
	  for systems using PulseAudio.  The default 64 is chosen just
	  for compatibility reasons.

	  Note that the pre-allocation size can be changed dynamically
	  via a proc file (/proc/asound/card*/pcm*/sub*/prealloc), too.

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"
	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
	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_INPUT_BEEP_MODE
	int "Digital beep registration mode (0=off, 1=on)"
	depends on SND_HDA_INPUT_BEEP=y
	default "1"
	range 0 1
	help
	  Set 0 to disable the digital beep interface for HD-audio by default.
	  Set 1 to always enable the digital beep interface for HD-audio by
	  default.

config SND_HDA_PATCH_LOADER
	bool "Support initialization patch loading for HD-audio"
	select FW_LOADER
	select SND_HDA_RECONFIG
	help
	  Say Y here to allow the HD-audio driver to load a pseudo
	  firmware file ("patch") for overriding the BIOS setup at
	  start up.  The "patch" file can be specified via patch module
	  option, such as patch=hda-init.

config SND_HDA_CODEC_REALTEK
	tristate "Build Realtek HD-audio codec support"
	select SND_HDA_GENERIC
	select INPUT
	help
	  Say Y or M here to include Realtek HD-audio codec support in
	  snd-hda-intel driver, such as ALC880.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_REALTEK=m

config SND_HDA_CODEC_ANALOG
	tristate "Build Analog Device HD-audio codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include Analog Device HD-audio codec support in
	  snd-hda-intel driver, such as AD1986A.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_ANALOG=m

config SND_HDA_CODEC_SIGMATEL
	tristate "Build IDT/Sigmatel HD-audio codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include IDT (Sigmatel) HD-audio codec support in
	  snd-hda-intel driver, such as STAC9200.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_SIGMATEL=m

config SND_HDA_CODEC_VIA
	tristate "Build VIA HD-audio codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include VIA HD-audio codec support in
	  snd-hda-intel driver, such as VT1708.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_VIA=m

config SND_HDA_CODEC_HDMI
	tristate "Build HDMI/DisplayPort HD-audio codec support"
	help
	  Say Y or M here to include HDMI and DisplayPort HD-audio codec
	  support in snd-hda-intel driver.  This includes all AMD/ATI,
	  Intel and Nvidia HDMI/DisplayPort codecs.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_HDMI=m

config SND_HDA_I915
	bool
	default y
	depends on DRM_I915

config SND_HDA_CODEC_CIRRUS
	tristate "Build Cirrus Logic codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include Cirrus Logic codec support in
	  snd-hda-intel driver, such as CS4206.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_CIRRUS=m

config SND_HDA_CODEC_CONEXANT
	tristate "Build Conexant HD-audio codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include Conexant HD-audio codec support in
	  snd-hda-intel driver, such as CX20549.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_CONEXANT=m

config SND_HDA_CODEC_CA0110
	tristate "Build Creative CA0110-IBG codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include Creative CA0110-IBG codec support in
	  snd-hda-intel driver, found on some Creative X-Fi cards.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_CA0110=m

config SND_HDA_CODEC_CA0132
	tristate "Build Creative CA0132 codec support"
	help
	  Say Y or M here to include Creative CA0132 codec support in
	  snd-hda-intel driver.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_CA0132=m

config SND_HDA_CODEC_CA0132_DSP
	bool "Support new DSP code for CA0132 codec"
	depends on SND_HDA_CODEC_CA0132
	select SND_HDA_DSP_LOADER
	select FW_LOADER
	help
	  Say Y here to enable the DSP for Creative CA0132 for extended
	  features like equalizer or echo cancellation.

	  Note that this option requires the external firmware file
	  (ctefx.bin).

config SND_HDA_CODEC_CMEDIA
	tristate "Build C-Media HD-audio codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include C-Media HD-audio codec support in
	  snd-hda-intel driver, such as CMI9880.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_CMEDIA=m

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

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_CODEC_SI3054=m

config SND_HDA_GENERIC
	tristate "Enable generic HD-audio codec parser"
	help
	  Say Y or M here to enable the generic HD-audio codec parser
	  in snd-hda-intel driver.

comment "Set to Y if you want auto-loading the codec driver"
	depends on SND_HDA=y && SND_HDA_GENERIC=m

config SND_HDA_POWER_SAVE_DEFAULT
	int "Default time-out for HD-audio power-save mode"
	depends on PM
	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

endmenu
