From 4c099d3ade0536a3e2df7adb8539dd5cbbc87ffa Mon Sep 17 00:00:00 2001 From: Annemarie Porter Date: Thu, 4 Jun 2026 10:11:49 -0700 Subject: [PATCH] Fix Hexagon build errors in iir_tdf2 and audio_filter Two build failures observed when compiling for Hexagon targets: 1. iir_tdf2.c includes audio_iir_tdf2_asm.h under __hexagon__ guard but the header was absent from the repository: iir_tdf2.c:14:10: fatal error: 'audio_iir_tdf2_asm.h' file not found 2. biquad_process_io() in audio_filter.cpp accesses yL16 and xL16 members absent from the Hexagon _biquadFilter variant: audio_filter.cpp:465:27: error: no member named 'yL16' in '_biquadFilter' audio_filter.cpp:466:27: error: no member named 'xL16' in '_biquadFilter' Add audio_iir_tdf2_asm.h to modules/cmn/common/utils/inc/ and fix the missing Hexagon guard in biquad_process_io(). Signed-off-by: Annemarie Porter --- .../cmn/common/utils/inc/audio_iir_tdf2_asm.h | 19 +++++++++++++++++++ modules/cmn/common/utils/src/audio_filter.cpp | 6 +++--- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 modules/cmn/common/utils/inc/audio_iir_tdf2_asm.h diff --git a/modules/cmn/common/utils/inc/audio_iir_tdf2_asm.h b/modules/cmn/common/utils/inc/audio_iir_tdf2_asm.h new file mode 100644 index 00000000..1ddb991a --- /dev/null +++ b/modules/cmn/common/utils/inc/audio_iir_tdf2_asm.h @@ -0,0 +1,19 @@ +/*========================================================================*/ +/** +@file audio_iir_tdf2_asm.h + +This file defines flags to use Q6 ASM of IIR TDF2 functions. +*/ + +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _AUDIO_IIRTDF2_ASM_H_ +#define _AUDIO_IIRTDF2_ASM_H_ + +#define QDSP6_ASM_IIRTDF2_32 +#define QDSP6_ASM_IIRTDF2_16 + +#endif /* _AUDIO_IIRTDF2_ASM_H_ */ diff --git a/modules/cmn/common/utils/src/audio_filter.cpp b/modules/cmn/common/utils/src/audio_filter.cpp index d4cae53f..f8fdd5d1 100644 --- a/modules/cmn/common/utils/src/audio_filter.cpp +++ b/modules/cmn/common/utils/src/audio_filter.cpp @@ -450,7 +450,7 @@ void biquad_process_io ) { -/*#if ((defined __hexagon__) || (defined __qdsp6__)) +#if ((defined __hexagon__) || (defined __qdsp6__)) int16 *bufPtr = srcBuf; int16 *coeffptr = &filter->coeffsL16Q13[filter->coeffIndex]; @@ -459,7 +459,7 @@ void biquad_process_io -#else */ +#else int32 i; int16 xInL16; int16 *yL16 = filter->yL16; @@ -520,7 +520,7 @@ void biquad_process_io } /*-- store accumulator value back --*/ filter->yL32 = s32_extract_s40_l(yL40); -//#endif +#endif } /*----------------- end of function biquad_process_io --------------------*/