Skip to content

Commit 6c36dd6

Browse files
committed
llext: export symbols, required for eq_fir
When built as an llext module, eq_fir requires several base-firmware provided symbols, export them. Signed-off-by: Guennadi Liakhovetski <[email protected]>
1 parent 8fd3cc3 commit 6c36dd6

File tree

7 files changed

+28
-0
lines changed

7 files changed

+28
-0
lines changed

src/audio/data_blob.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ void comp_data_blob_set_validator(struct comp_data_blob_handler *blob_handler,
5858

5959
blob_handler->validator = validator;
6060
}
61+
EXPORT_SYMBOL(comp_data_blob_set_validator);
6162

6263
void *comp_get_data_blob(struct comp_data_blob_handler *blob_handler,
6364
size_t *size, uint32_t *crc)

src/audio/sink_source_utils.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <sof/common.h>
1010
#include <rtos/panic.h>
1111
#include <rtos/string.h>
12+
#include <rtos/symbol.h>
1213
#include <sof/math/numbers.h>
1314
#include <limits.h>
1415

@@ -71,3 +72,4 @@ int source_to_sink_copy(struct sof_source *source,
7172
sink_commit_buffer(sink, INT_MAX);
7273
return 0;
7374
}
75+
EXPORT_SYMBOL(source_to_sink_copy);

src/audio/source_api_helper.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
* Copyright(c) 2023 Intel Corporation. All rights reserved.
44
*/
55

6+
#include <rtos/symbol.h>
7+
68
#include <sof/audio/source_api.h>
79
#include <sof/audio/audio_stream.h>
810

@@ -96,6 +98,7 @@ int source_set_alignment_constants(struct sof_source *source,
9698
return source->ops->set_alignment_constants(source, byte_align, frame_align_req);
9799
return 0;
98100
}
101+
EXPORT_SYMBOL(source_set_alignment_constants);
99102

100103
void source_set_min_available(struct sof_source *source, size_t min_available)
101104
{

src/math/fir_generic.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <sof/audio/format.h>
1616
#include <sof/math/fir_generic.h>
1717
#include <user/fir.h>
18+
#include <rtos/symbol.h>
1819
#include <errno.h>
1920
#include <stddef.h>
2021
#include <stdint.h>
@@ -33,6 +34,7 @@ void fir_reset(struct fir_state_32x16 *fir)
3334
* reset so omitting setting also fir->delay to NULL.
3435
*/
3536
}
37+
EXPORT_SYMBOL(fir_reset);
3638

3739
int fir_delay_size(struct sof_fir_coef_data *config)
3840
{
@@ -49,6 +51,7 @@ int fir_delay_size(struct sof_fir_coef_data *config)
4951
*/
5052
return (config->length + 4) * sizeof(int32_t);
5153
}
54+
EXPORT_SYMBOL(fir_delay_size);
5255

5356
int fir_init_coef(struct fir_state_32x16 *fir,
5457
struct sof_fir_coef_data *config)
@@ -60,12 +63,14 @@ int fir_init_coef(struct fir_state_32x16 *fir,
6063
fir->coef = ASSUME_ALIGNED(&config->coef[0], 4);
6164
return 0;
6265
}
66+
EXPORT_SYMBOL(fir_init_coef);
6367

6468
void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data)
6569
{
6670
fir->delay = *data;
6771
*data += fir->length; /* Point to next delay line start */
6872
}
73+
EXPORT_SYMBOL(fir_init_delay);
6974

7075
int32_t fir_32x16(struct fir_state_32x16 *fir, int32_t x)
7176
{

src/math/fir_hifi2ep.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <user/fir.h>
1515
#include <xtensa/config/defs.h>
1616
#include <xtensa/tie/xt_hifi2.h>
17+
#include <rtos/symbol.h>
1718
#include <errno.h>
1819
#include <stddef.h>
1920
#include <stdint.h>
@@ -32,6 +33,7 @@ void fir_reset(struct fir_state_32x16 *fir)
3233
* reset so omitting setting also fir->delay to NULL.
3334
*/
3435
}
36+
EXPORT_SYMBOL(fir_reset);
3537

3638
int fir_delay_size(struct sof_fir_coef_data *config)
3739
{
@@ -47,6 +49,7 @@ int fir_delay_size(struct sof_fir_coef_data *config)
4749
*/
4850
return (config->length + 2) * sizeof(int32_t);
4951
}
52+
EXPORT_SYMBOL(fir_delay_size);
5053

5154
int fir_init_coef(struct fir_state_32x16 *fir,
5255
struct sof_fir_coef_data *config)
@@ -62,6 +65,7 @@ int fir_init_coef(struct fir_state_32x16 *fir,
6265
fir->coef = (ae_p16x2s *)&config->coef[0];
6366
return 0;
6467
}
68+
EXPORT_SYMBOL(fir_init_coef);
6569

6670
void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data)
6771
{
@@ -70,13 +74,15 @@ void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data)
7074
fir->rwp = (ae_p24x2f *)(fir->delay + fir->length - 1);
7175
*data += fir->length; /* Point to next delay line start */
7276
}
77+
EXPORT_SYMBOL(fir_init_delay);
7378

7479
void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift,
7580
int *rshift)
7681
{
7782
*lshift = (fir->out_shift < 0) ? -fir->out_shift : 0;
7883
*rshift = (fir->out_shift > 0) ? fir->out_shift : 0;
7984
}
85+
EXPORT_SYMBOL(fir_get_lrshifts);
8086

8187
/* HiFi EP has the follow number of reqisters that should not be exceeded
8288
* 4x 56 bit registers in register file Q

src/math/fir_hifi3.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <user/fir.h>
1515
#include <xtensa/config/defs.h>
1616
#include <xtensa/tie/xt_hifi3.h>
17+
#include <rtos/symbol.h>
1718
#include <errno.h>
1819
#include <stddef.h>
1920
#include <stdint.h>
@@ -32,6 +33,7 @@ void fir_reset(struct fir_state_32x16 *fir)
3233
* reset so omitting setting also fir->delay to NULL.
3334
*/
3435
}
36+
EXPORT_SYMBOL(fir_reset);
3537

3638
int fir_delay_size(struct sof_fir_coef_data *config)
3739
{
@@ -48,6 +50,7 @@ int fir_delay_size(struct sof_fir_coef_data *config)
4850
*/
4951
return (config->length + 2) * sizeof(int32_t);
5052
}
53+
EXPORT_SYMBOL(fir_delay_size);
5154

5255
int fir_init_coef(struct fir_state_32x16 *fir,
5356
struct sof_fir_coef_data *config)
@@ -63,6 +66,7 @@ int fir_init_coef(struct fir_state_32x16 *fir,
6366
fir->coef = (ae_f16x4 *)&config->coef[0];
6467
return 0;
6568
}
69+
EXPORT_SYMBOL(fir_init_coef);
6670

6771
void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data)
6872
{
@@ -71,13 +75,15 @@ void fir_init_delay(struct fir_state_32x16 *fir, int32_t **data)
7175
fir->rwp = (ae_int32 *)(fir->delay + fir->length - 1);
7276
*data += fir->length; /* Point to next delay line start */
7377
}
78+
EXPORT_SYMBOL(fir_init_delay);
7479

7580
void fir_get_lrshifts(struct fir_state_32x16 *fir, int *lshift,
7681
int *rshift)
7782
{
7883
*lshift = (fir->out_shift < 0) ? -fir->out_shift : 0;
7984
*rshift = (fir->out_shift > 0) ? fir->out_shift : 0;
8085
}
86+
EXPORT_SYMBOL(fir_get_lrshifts);
8187

8288
/* HiFi EP has the follow number of reqisters that should not be exceeded
8389
* 4x 56 bit registers in register file Q
@@ -245,5 +251,6 @@ void fir_32x16_2x_hifi3(struct fir_state_32x16 *fir, ae_int32 x0, ae_int32 x1,
245251
AE_S32_L_I(AE_ROUND32F48SSYM(b), (ae_int32 *)y1, 0);
246252
AE_S32_L_I(AE_ROUND32F48SSYM(a), (ae_int32 *)y0, 0);
247253
}
254+
EXPORT_SYMBOL(fir_32x16_2x_hifi3);
248255

249256
#endif

src/module/audio/sink_api.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ int sink_set_rate(struct sof_sink *sink, unsigned int rate)
9797
return sink->ops->on_audio_format_set(sink);
9898
return 0;
9999
}
100+
EXPORT_SYMBOL(sink_set_rate);
100101

101102
int sink_set_channels(struct sof_sink *sink, unsigned int channels)
102103
{
@@ -114,6 +115,7 @@ int sink_set_buffer_fmt(struct sof_sink *sink, uint32_t buffer_fmt)
114115
return sink->ops->on_audio_format_set(sink);
115116
return 0;
116117
}
118+
EXPORT_SYMBOL(sink_set_buffer_fmt);
117119

118120
int sink_set_overrun(struct sof_sink *sink, bool overrun_permitted)
119121
{
@@ -129,6 +131,7 @@ int sink_set_params(struct sof_sink *sink, struct sof_ipc_stream_params *params,
129131
return sink->ops->audio_set_ipc_params(sink, params, force_update);
130132
return 0;
131133
}
134+
EXPORT_SYMBOL(sink_set_params);
132135

133136
int sink_set_alignment_constants(struct sof_sink *sink, const uint32_t byte_align,
134137
const uint32_t frame_align_req)
@@ -137,3 +140,4 @@ int sink_set_alignment_constants(struct sof_sink *sink, const uint32_t byte_alig
137140
return sink->ops->set_alignment_constants(sink, byte_align, frame_align_req);
138141
return 0;
139142
}
143+
EXPORT_SYMBOL(sink_set_alignment_constants);

0 commit comments

Comments
 (0)