Skip to content

Commit e5033c1

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 functiona changes to stubs, the generic processing in e.g. testbench still fails with these. As exception, the missing sof_panic(0); is added to generic downmix16bit_stereo(). Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
1 parent 669c5d6 commit e5033c1

4 files changed

Lines changed: 219 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: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
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+
sof_panic(0);
110+
}
111+
112+
void shiftcopy16bit_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
113+
const uint32_t in_size, uint8_t * const out_data)
114+
{
115+
sof_panic(0);
116+
}
117+
118+
void shiftcopy16bit_stereo(struct up_down_mixer_data *cd, const uint8_t * const in_data,
119+
const uint32_t in_size, uint8_t * const out_data)
120+
{
121+
sof_panic(0);
122+
}
123+
124+
void downmix16bit(struct up_down_mixer_data *cd, const uint8_t * const in_data,
125+
const uint32_t in_size, uint8_t * const out_data)
126+
{
127+
sof_panic(0);
128+
}
129+
130+
void downmix16bit_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
131+
const uint32_t in_size, uint8_t * const out_data)
132+
{
133+
sof_panic(0);
134+
}
135+
136+
void downmix16bit_4ch_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
137+
const uint32_t in_size, uint8_t * const out_data)
138+
{
139+
sof_panic(0);
140+
}
141+
142+
void downmix32bit_stereo(struct up_down_mixer_data *cd, const uint8_t * const in_data,
143+
const uint32_t in_size, uint8_t * const out_data)
144+
{
145+
sof_panic(0);
146+
}
147+
148+
void downmix32bit_3_1_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
149+
const uint32_t in_size, uint8_t * const out_data)
150+
{
151+
sof_panic(0);
152+
}
153+
154+
void downmix32bit_4_0_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
155+
const uint32_t in_size, uint8_t * const out_data)
156+
{
157+
sof_panic(0);
158+
}
159+
160+
void downmix32bit_quatro_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
161+
const uint32_t in_size, uint8_t * const out_data)
162+
{
163+
sof_panic(0);
164+
}
165+
166+
void downmix32bit_5_1_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
167+
const uint32_t in_size, uint8_t * const out_data)
168+
{
169+
sof_panic(0);
170+
}
171+
172+
void downmix32bit_7_1_mono(struct up_down_mixer_data *cd, const uint8_t * const in_data,
173+
const uint32_t in_size, uint8_t * const out_data)
174+
{
175+
sof_panic(0);
176+
}
177+
178+
void downmix32bit_7_1_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
179+
const uint32_t in_size, uint8_t * const out_data)
180+
{
181+
sof_panic(0);
182+
}
183+
184+
void upmix32bit_4_0_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
185+
const uint32_t in_size, uint8_t * const out_data)
186+
{
187+
sof_panic(0);
188+
}
189+
190+
void upmix32bit_quatro_to_5_1(struct up_down_mixer_data *cd, const uint8_t * const in_data,
191+
const uint32_t in_size, uint8_t * const out_data)
192+
{
193+
sof_panic(0);
194+
}
195+
196+
#endif /* #if SOF_USE_HIFI(NONE, UP_DOWN_MIXER) */

0 commit comments

Comments
 (0)