# SPDX-License-Identifier: GPL-2.0-only
menu "HD-Audio"

config SND_HDA
	tristate
	select SND_PCM
	select SND_VMASTER
	select SND_JACK
	select SND_HDA_CORE

config SND_HDA_INTEL
	tristate "HD Audio PCI"
	depends on SND_PCI
	select SND_HDA
	select SND_INTEL_DSP_CONFIG
	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
	select SND_HDA_ALIGNED_MMIO
	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_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.
	  It allows user to clear the whole codec configuration, change the
	  codec setup, add extra verbs, and re-configure the codec dynamically.

	  Note that this item alone doesn't provide the sysfs interface, but
	  enables the feature just for the patch loader below.
	  If you need the traditional sysfs entries for the manual interaction,
	  turn on CONFIG_SND_HDA_HWDEP as well.

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
	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 Devices HD-audio codec support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include Analog Devices 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"
	select SND_DYNAMIC_MINORS
	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.

	  Note that this option mandatorily enables CONFIG_SND_DYNAMIC_MINORS
	  to assure the multiple streams for DP-MST support.

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_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.

config SND_HDA_INTEL_HDMI_SILENT_STREAM
	bool "Enable Silent Stream always for HDMI"
	depends on SND_HDA_INTEL
	help
	  Intel hardware has a feature called 'silent stream', that
	  keeps external HDMI receiver's analog circuitry powered on
	  avoiding 2-3 sec silence during playback start. This mechanism
	  relies on setting channel_id as 0xf, sending info packet and
	  preventing codec D3 entry (increasing  platform static power
	  consumption when HDMI receiver is plugged-in). 2-3 sec silence
	  at the playback start is expected whenever there is format change.
	  (default is 2 channel format).
	  Say Y to enable Silent Stream feature.

endif

endmenu
