summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeiguang Kong <weiguang.kong@nxp.com>2017-12-26 18:57:10 +0800
committerWeiguang Kong <weiguang.kong@nxp.com>2018-01-05 11:58:52 +0800
commit385fd9f7a01dcd8eebc6ec0252efbb03ece0e82a (patch)
treea2fd6233d36bda84ce8372f6a2595319ad008b83
parent668f73ed73a697ab2f06db97902a2a67bfd4031a (diff)
MLK-17309-1: uapi: mxc_hifi4: provide new interface for user space
In order to avoid license problem of Cadence header files, these license files has been wrappered into a library and new interface has been abstracted to replace the interface of Cadence header files. So update the mxc_hifi4.h file to provide new interface for user space to use. Signed-off-by: Weiguang Kong <weiguang.kong@nxp.com> (cherry picked from commit 3e2339222795581905bf9a376a61b7b1482ca318)
-rw-r--r--include/uapi/linux/mxc_hifi4.h108
1 files changed, 98 insertions, 10 deletions
diff --git a/include/uapi/linux/mxc_hifi4.h b/include/uapi/linux/mxc_hifi4.h
index 27a3c4fab27a..e22f7f5808e1 100644
--- a/include/uapi/linux/mxc_hifi4.h
+++ b/include/uapi/linux/mxc_hifi4.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 NXP
+ * Copyright 2018 NXP
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@@ -35,6 +35,8 @@
#define HIFI4_GET_PCM_PROP _IOW(HIFI4_IOC_MAGIC, 6, unsigned int)
#define HIFI4_SET_CONFIG _IOW(HIFI4_IOC_MAGIC, 7, unsigned int)
#define HIFI4_RESET_CODEC _IOW(HIFI4_IOC_MAGIC, 8, unsigned int)
+#define HIFI4_CLIENT_REGISTER _IOW(HIFI4_IOC_MAGIC, 9, unsigned int)
+#define HIFI4_CLIENT_UNREGISTER _IOW(HIFI4_IOC_MAGIC, 10, unsigned int)
#define CODEC_MP3_DEC 1
#define CODEC_AAC_DEC 2
@@ -46,6 +48,99 @@
#define CODEC_SBC_ENC 8
#define CODEC_DEMO_DEC 9
+enum HIFI_ERROR_TYPE {
+ XA_SUCCESS = 0,
+
+ XA_ERROR_STREAM,
+ XA_PARA_ERROR,
+ XA_INSUFFICIENT_MEM,
+ XA_ERR_UNKNOWN,
+ XA_PROFILE_NOT_SUPPORT,
+ XA_INIT_ERR,
+ XA_NO_OUTPUT,
+
+ XA_NOT_ENOUGH_DATA = 0x100,
+ XA_CAPIBILITY_CHANGE = 0x200,
+ XA_END_OF_STREAM = 0x300, /* no output */
+};
+
+/* Parameter type to Set /Get */
+enum HIFI_ParaType {
+/* Set parmameters */
+/* common */
+ XA_SAMPLERATE = 0,
+ XA_CHANNEL,
+ XA_FRAMED, /* one whole frame input */
+ XA_DEPTH,
+ XA_CODEC_DATA,
+ XA_BITRATE,
+ XA_DOWNMIX_STEREO,
+ XA_STREAM_TYPE,
+ XA_CHAN_MAP_TABLE,
+ //UNIA_CHANNEL_MASK,
+ XA_TO_STEREO,
+
+/* dedicate for mp3 dec */
+ XA_MP3_DEC_CRC_CHECK = 0x120,
+ XA_MP3_DEC_MCH_ENABLE,
+ XA_MP3_DEC_NONSTD_STRM_SUPPORT,
+
+/* dedicate for bsac dec */
+ XA_BSAC_DEC_DECODELAYERS = 0x130,
+
+/* dedicate for aacplus dec */
+ XA_AACPLUS_DEC_BDOWNSAMPLE = 0x140,
+ XA_AACPLUS_DEC_BBITSTREAMDOWNMIX,
+ XA_AACPLUS_DEC_CHANROUTING,
+
+/* dedicate for dabplus dec */
+ XA_DABPLUS_DEC_BDOWNSAMPLE = 0x150,
+ XA_DABPLUS_DEC_BBITSTREAMDOWNMIX,
+ XA_DABPLUS_DEC_CHANROUTING,
+
+/* dedicate for sbc enc */
+ XA_SBC_ENC_SUBBANDS = 0x160,
+ XA_SBC_ENC_BLOCKS,
+ XA_SBC_ENC_SNR,
+ XA_SBC_ENC_BITPOOL,
+ XA_SBC_ENC_CHMODE,
+
+};
+
+#define HIFI_STREAM_DABPLUS_BASE 0x30
+enum HIFI_StreamType {
+ /* AAC/AACPLUS file format */
+ XA_STREAM_UNKNOWN = 0,
+ XA_STREAM_ADTS,
+ XA_STREAM_ADIF,
+ XA_STREAM_RAW,
+
+ XA_STREAM_LATM,
+ XA_STREAM_LATM_OUTOFBAND_CONFIG,
+ XA_STREAM_LOAS,
+
+ /* DABPLUS file format */
+ XA_STREAM_DABPLUS_RAW_SIDEINFO = HIFI_STREAM_DABPLUS_BASE,
+ XA_STREAM_DABPLUS,
+
+ /* BSAC file raw format */
+ XA_STREAM_BSAC_RAW,
+
+};
+
+/* sbc_enc-specific channel modes */
+enum HIFI_SbcEncChmode {
+ XA_CHMODE_MONO = 0,
+ XA_CHMODE_DUAL = 1,
+ XA_CHMODE_STEREO = 2,
+ XA_CHMODE_JOINT = 3,
+};
+
+enum lib_type {
+ HIFI_CODEC_LIB = 1,
+ HIFI_CODEC_WRAP_LIB,
+};
+
struct decode_info {
void *in_buf_addr;
int in_buf_size;
@@ -53,7 +148,6 @@ struct decode_info {
void *out_buf_addr;
int out_buf_size;
int out_buf_off;
- unsigned int cycles;
unsigned int input_over;
unsigned int process_id;
};
@@ -63,14 +157,7 @@ struct prop_info {
int channels;
int bits;
unsigned int consumed_bytes;
-
- /* dedicate for drm dec */
- int frame_size;
-
- /* dedicate for bsac, aacplus and dabplus dec */
- int aac_samplerate;
- int sbr_type;
- int mpeg_surr_present;
+ unsigned int cycles;
unsigned int process_id;
};
@@ -79,6 +166,7 @@ struct binary_info {
int type;
char *file;
unsigned int process_id;
+ unsigned int lib_type;
};
struct prop_config {