Skip to content

Commit 2d2476f

Browse files
committed
audio: pcm_converter: add ARM Cortex-M DSP format conversion routines
Implement ARM Cortex-M DSP optimizations for PCM format conversion: - Add CONFIG_FORMAT_CONVERT_ARM_SIMD Kconfig option in audio Kconfig. - Define PCM_CONVERTER_ARM_SIMD in pcm_converter.h. - Implement pcm_converter_arm.c: * Fast integer format conversions (S16, S24, S32) using SXTH, PKHBT, SSAT, and sign extension. * Float-to-integer and integer-to-float conversions with hardware FPU. * Linear and circular buffer conversion routines with IPC3 and IPC4 dispatch tables (pcm_func_map, pcm_func_vc_map). Signed-off-by: Liam Girdwood <lgirdwood@gmail.com>
1 parent 7ab6c0e commit 2d2476f

4 files changed

Lines changed: 1105 additions & 1 deletion

File tree

‎src/audio/Kconfig‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,13 @@ config FORMAT_CONVERT_HIFI3
282282
help
283283
Use HIFI3 extensions for optimized format conversion (experimental).
284284

285+
config FORMAT_CONVERT_ARM_SIMD
286+
bool "ARM SIMD optimized conversion"
287+
default y
288+
depends on ARM
289+
help
290+
Use ARMv7E-M DSP and SIMD instructions for optimized format conversion.
291+
285292
config PCM_CONVERTER_FORMAT_U8
286293
bool "Support U8"
287294
help

‎src/audio/pcm_converter/CMakeLists.txt‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
add_local_sources(sof
44
pcm_converter.c
55
pcm_converter_generic.c
6-
pcm_converter_hifi3.c)
6+
pcm_converter_hifi3.c
7+
pcm_converter_arm.c)
78

89
if(CONFIG_PCM_REMAPPING_CONVERTERS)
910
add_local_sources(sof pcm_remap.c)

0 commit comments

Comments
 (0)