# SPDX-License-Identifier: GPL-2.0-only
config SND_HDA_CORE
	tristate
	select REGMAP

config SND_HDA_DSP_LOADER
	bool

config SND_HDA_ALIGNED_MMIO
	bool

config SND_HDA_COMPONENT
	bool

config SND_HDA_I915
	bool
	select SND_HDA_COMPONENT

config SND_HDA_EXT_CORE
       tristate
       select SND_HDA_CORE

config SND_HDA_PREALLOC_SIZE
	int "Pre-allocated buffer size for HD-audio driver"
	range 0 32768
	default 2048 if SND_DMA_SGBUF
	default 64 if !SND_DMA_SGBUF
	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.
	  On x86 systems, the default is 2048 as a reasonable value for
	  most of modern systems.

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

config SND_INTEL_NHLT
	bool
	# this config should be selected only for Intel ACPI platforms.
	# A fallback is provided so that the code compiles in all cases.

config SND_INTEL_DSP_CONFIG
	tristate
	select SND_INTEL_NHLT if ACPI
	# this config should be selected only for Intel DSP platforms.
	# A fallback is provided so that the code compiles in all cases.
