summaryrefslogtreecommitdiff
path: root/common/audio_codec.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/audio_codec.c')
-rw-r--r--common/audio_codec.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/common/audio_codec.c b/common/audio_codec.c
index e21df5c039..43ba520707 100644
--- a/common/audio_codec.c
+++ b/common/audio_codec.c
@@ -7,6 +7,7 @@
#include "audio_codec.h"
#include "console.h"
#include "host_command.h"
+#include "util.h"
#define CPRINTS(format, args...) cprints(CC_AUDIO_CODEC, format, ## args)
@@ -144,3 +145,13 @@ int audio_codec_memmap_ap_to_ec(uintptr_t ap_addr, uintptr_t *ec_addr)
{
return EC_ERROR_UNIMPLEMENTED;
}
+
+int16_t audio_codec_s16_scale_and_clip(int16_t orig, uint8_t scalar)
+{
+ int32_t val;
+
+ val = (int32_t)orig * (int32_t)scalar;
+ val = MIN(val, (int32_t)INT16_MAX);
+ val = MAX(val, (int32_t)INT16_MIN);
+ return val;
+}