]> www.infradead.org Git - users/dwmw2/linux.git/commit
ASoC: SOF: Intel: hda: Add support for persistent Code Loader DMA buffers
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Thu, 7 Nov 2024 12:14:40 +0000 (14:14 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 7 Nov 2024 13:03:37 +0000 (13:03 +0000)
commit1862e847bf115a3ccbf38dd035ea0118be57f2e2
tree37532022d196d4fd443b2db76d0d801d1e20b391
parent1b1f491dac4f6ee88ec7c36c4fd27880b0a89f41
ASoC: SOF: Intel: hda: Add support for persistent Code Loader DMA buffers

It has been reported that the DMA memory allocation for firmware download
can fail after extended period of uptime on systems with relatively small
amount of RAM when the system memory becomes fragmented.

The issue primarily happens  when the system is waking up from system
suspend, swap might not be available and the MM system cannot move things
around to allow for successful allocation.

If the IMR boot is not supported then for each DSP boot we would need to
allocate the DMA buffer for firmware transfer, which can increase the
chances of the issue to be hit.

This patch adds support for allocating the DMA buffers once at first boot
time and keep it until the system is shut down, rebooted or the drivers
re-loaded and makes this as the default operation.

With persistent_cl_buffer module parameter the persistent Code Loader
DMA buffer can be disabled to fall back to on demand allocation.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://patch.msgid.link/20241107121440.1472-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-loader.c
sound/soc/sof/intel/hda.c
sound/soc/sof/intel/hda.h