# 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_GENERIC_LEDS
       bool

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
	select SND_HDA_GENERIC_LEDS
	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
	select SND_HDA_GENERIC_LEDS
	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_CS8409
	tristate "Build Cirrus Logic HDA bridge support"
	select SND_HDA_GENERIC
	help
	  Say Y or M here to include Cirrus Logic HDA bridge support in
	  snd-hda-intel driver, such as CS8409.

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

config SND_HDA_CODEC_CONEXANT
	tristate "Build Conexant HD-audio codec support"
	select SND_HDA_GENERIC
	select SND_HDA_GENERIC_LEDS
	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
	default y
	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"
	select SND_CTL_LED if SND_HDA_GENERIC_LEDS
	select LEDS_CLASS if SND_HDA_GENERIC_LEDS
	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
