19abfefd4c
HD-audio drivers access to the mmio registers indirectly via the corresponding bus->io_ops callbacks. This is because some platform (notably Tegra SoC) requires the word-aligned access. But it's rather a rare case, and other platforms suffer from the penalties by indirect calls unnecessarily. This patch is an attempt to optimize and cleanup for this situation. Now the special aligned access is used only when a new kconfig CONFIG_SND_HDA_ALIGNED_MMIO is set. And the HD-audio core itself provides the aligned MMIO access helpers instead of the driver side. If Kconfig isn't set (as default), the standard helpers like readl() or writel() are used directly. A couple of places in ASoC Intel drivers have the access via io_ops reg_writel(), and they are replaced with the direct writel() calls. And now with this patch, the whole bus->io_ops becomes empty, so it's dropped completely. The bus initialization functions are changed accordingly as well to drop the whole bus->io_ops. Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
35 lines
773 B
Plaintext
35 lines
773 B
Plaintext
# 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.
|