Skip to content

Commit c145b66

Browse files
committed
Audio: Up_down_mix: Split HiFi3 and generic version
This patch moves the generic processing stubs from up_down_mixer_hifi3.c to new file up_down_mixer_generic.c. The HiFi versions build choices are added to Kconfig. There are no code changes to stubs, the generic processing in e.g. testbench still fails with these. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
1 parent f3c854b commit c145b66

4 files changed

Lines changed: 218 additions & 188 deletions

File tree

src/audio/up_down_mixer/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22

33
add_local_sources(sof up_down_mixer.c)
44
add_local_sources(sof up_down_mixer_hifi3.c)
5+
add_local_sources(sof up_down_mixer_generic.c)

src/audio/up_down_mixer/Kconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,19 @@ config COMP_UP_DOWN_MIXER
1313
2 -> 7.1
1414
Downmixing for mono output:
1515
4.0, Quatro, 3.1, 2 -> 1
16+
17+
choice
18+
prompt "Up_down_mixer HIFI level"
19+
depends on COMP_UP_DOWN_MIXER
20+
default UP_DOWN_MIXER_HIFI_MAX
21+
22+
config UP_DOWN_MIXER_HIFI_MAX
23+
bool "Max level available in the toolchain"
24+
25+
config UP_DOWN_MIXER_HIFI_3
26+
bool "HIFI3 UP_DOWN_MIXER"
27+
28+
config UP_DOWN_MIXER_HIFI_NONE
29+
bool "Generic UP_DOWN_MIXER, no HIFI"
30+
31+
endchoice
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
// SPDX-License-Identifier: BSD-3-Clause
2+
//
3+
// Copyright(c) 2022-2025 Intel Corporation.
4+
//
5+
// Author: Bartosz Kokoszko <bartoszx.kokoszko@intel.com>
6+
// Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
7+
8+
#include <errno.h>
9+
#include <stddef.h>
10+
#include <stdint.h>
11+
12+
#include "up_down_mixer.h"
13+
14+
#if SOF_USE_HIFI(NONE, UP_DOWN_MIXER)
15+
16+
void upmix32bit_1_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
17+
const uint32_t in_size, uint8_t * const out_data)
18+
{
19+
sof_panic(0);
20+
}
21+
22+
void upmix16bit_1_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
23+
const uint32_t in_size, uint8_t * const out_data)
24+
{
25+
sof_panic(0);
26+
}
27+
28+
void upmix32bit_2_0_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
29+
const uint32_t in_size, uint8_t * const out_data)
30+
{
31+
sof_panic(0);
32+
}
33+
34+
void upmix16bit_2_0_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
35+
const uint32_t in_size, uint8_t * const out_data)
36+
{
37+
sof_panic(0);
38+
}
39+
40+
void upmix32bit_2_0_to_7_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
41+
const uint32_t in_size, uint8_t * const out_data)
42+
{
43+
sof_panic(0);
44+
}
45+
46+
void shiftcopy32bit_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
47+
const uint32_t in_size, uint8_t * const out_data)
48+
{
49+
sof_panic(0);
50+
}
51+
52+
void shiftcopy32bit_stereo(struct up_down_mixer_data *cd, const uint8_t * const in_data,
53+
const uint32_t in_size, uint8_t * const out_data)
54+
{
55+
sof_panic(0);
56+
}
57+
58+
void downmix32bit_2_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
59+
const uint32_t in_size, uint8_t * const out_data)
60+
{
61+
sof_panic(0);
62+
}
63+
64+
void downmix32bit_3_0(struct up_down_mixer_data *cd, const uint8_t * const in_data,
65+
const uint32_t in_size, uint8_t * const out_data)
66+
{
67+
sof_panic(0);
68+
}
69+
70+
void downmix32bit_3_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
71+
const uint32_t in_size, uint8_t * const out_data)
72+
{
73+
sof_panic(0);
74+
}
75+
76+
void downmix32bit(struct up_down_mixer_data *cd, const uint8_t * const in_data,
77+
const uint32_t in_size, uint8_t * const out_data)
78+
{
79+
sof_panic(0);
80+
}
81+
82+
void downmix32bit_4_0(struct up_down_mixer_data *cd, const uint8_t * const in_data,
83+
const uint32_t in_size, uint8_t * const out_data)
84+
{
85+
sof_panic(0);
86+
}
87+
88+
void downmix32bit_5_0_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
89+
const uint32_t in_size, uint8_t * const out_data)
90+
{
91+
sof_panic(0);
92+
}
93+
94+
void downmix32bit_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
95+
const uint32_t in_size, uint8_t * const out_data)
96+
{
97+
sof_panic(0);
98+
}
99+
100+
void downmix32bit_7_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
101+
const uint32_t in_size, uint8_t * const out_data)
102+
{
103+
sof_panic(0);
104+
}
105+
106+
void downmix16bit_stereo(struct up_down_mixer_data *cd, const uint8_t * const in_data,
107+
const uint32_t in_size, uint8_t * const out_data)
108+
{
109+
}
110+
111+
void shiftcopy16bit_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
112+
const uint32_t in_size, uint8_t * const out_data)
113+
{
114+
sof_panic(0);
115+
}
116+
117+
void shiftcopy16bit_stereo(struct up_down_mixer_data *cd, const uint8_t * const in_data,
118+
const uint32_t in_size, uint8_t * const out_data)
119+
{
120+
sof_panic(0);
121+
}
122+
123+
void downmix16bit(struct up_down_mixer_data *cd, const uint8_t * const in_data,
124+
const uint32_t in_size, uint8_t * const out_data)
125+
{
126+
sof_panic(0);
127+
}
128+
129+
void downmix16bit_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
130+
const uint32_t in_size, uint8_t * const out_data)
131+
{
132+
sof_panic(0);
133+
}
134+
135+
void downmix16bit_4ch_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
136+
const uint32_t in_size, uint8_t * const out_data)
137+
{
138+
sof_panic(0);
139+
}
140+
141+
void downmix32bit_stereo(struct up_down_mixer_data *cd, const uint8_t * const in_data,
142+
const uint32_t in_size, uint8_t * const out_data)
143+
{
144+
sof_panic(0);
145+
}
146+
147+
void downmix32bit_3_1_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
148+
const uint32_t in_size, uint8_t * const out_data)
149+
{
150+
sof_panic(0);
151+
}
152+
153+
void downmix32bit_4_0_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
154+
const uint32_t in_size, uint8_t * const out_data)
155+
{
156+
sof_panic(0);
157+
}
158+
159+
void downmix32bit_quatro_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
160+
const uint32_t in_size, uint8_t * const out_data)
161+
{
162+
sof_panic(0);
163+
}
164+
165+
void downmix32bit_5_1_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
166+
const uint32_t in_size, uint8_t * const out_data)
167+
{
168+
sof_panic(0);
169+
}
170+
171+
void downmix32bit_7_1_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
172+
const uint32_t in_size, uint8_t * const out_data)
173+
{
174+
sof_panic(0);
175+
}
176+
177+
void downmix32bit_7_1_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
178+
const uint32_t in_size, uint8_t * const out_data)
179+
{
180+
sof_panic(0);
181+
}
182+
183+
void upmix32bit_4_0_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
184+
const uint32_t in_size, uint8_t * const out_data)
185+
{
186+
sof_panic(0);
187+
}
188+
189+
void upmix32bit_quatro_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
190+
const uint32_t in_size, uint8_t * const out_data)
191+
{
192+
sof_panic(0);
193+
}
194+
195+
#endif /* #if SOF_USE_HIFI(NONE, UP_DOWN_MIXER) */

0 commit comments

Comments
 (0)