# 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 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_INTEL_NHLT
	tristate
	# this config should be selected only for Intel ACPI platforms.
	# A fallback is provided so that the code compiles in all cases.