ASoc: msm: Add low latency playback and recording support.
- Add lowlatency pcm driver for Playback and Recording. - Add support in target board files - Add Recording Path to Multimedia5 FE DAI - Add support in routing, platform, machine drivers - Add low latency interfaces support in ASM and ADM drivers. Change-Id: I1beb11db9010534e5aa91179ac6040a41622185d Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org>
This commit is contained in:
committed by
Stephen Boyd
parent
d36cb2935a
commit
978b65ca45
@@ -561,6 +561,7 @@ struct adm_copp_open_command {
|
||||
#define ADM_CMD_COPP_CLOSE 0x00010305
|
||||
|
||||
#define ADM_CMD_MULTI_CHANNEL_COPP_OPEN 0x00010310
|
||||
#define ADM_CMD_MULTI_CHANNEL_COPP_OPEN_V3 0x00010333
|
||||
struct adm_multi_ch_copp_open_command {
|
||||
struct apr_hdr hdr;
|
||||
u16 flags;
|
||||
@@ -573,7 +574,6 @@ struct adm_multi_ch_copp_open_command {
|
||||
u32 rate;
|
||||
u8 dev_channel_mapping[8];
|
||||
} __packed;
|
||||
|
||||
#define ADM_CMD_MEMORY_MAP 0x00010C30
|
||||
struct adm_cmd_memory_map{
|
||||
struct apr_hdr hdr;
|
||||
@@ -618,6 +618,14 @@ struct adm_cmd_memory_unmap_regions{
|
||||
#define VPM_TX_DM_FLUENCE_COPP_TOPOLOGY 0x00010F72
|
||||
#define VPM_TX_QMIC_FLUENCE_COPP_TOPOLOGY 0x00010F75
|
||||
|
||||
#define LOWLATENCY_POPP_TOPOLOGY 0x00010C68
|
||||
#define LOWLATENCY_COPP_TOPOLOGY 0x00010312
|
||||
#define PCM_BITS_PER_SAMPLE 16
|
||||
|
||||
#define ASM_OPEN_WRITE_PERF_MODE_BIT (1<<28)
|
||||
#define ASM_OPEN_READ_PERF_MODE_BIT (1<<29)
|
||||
#define ADM_MULTI_CH_COPP_OPEN_PERF_MODE_BIT (1<<13)
|
||||
|
||||
/* SRS TRUMEDIA GUIDS */
|
||||
/* topology */
|
||||
#define SRS_TRUMEDIA_TOPOLOGY_ID 0x00010D90
|
||||
@@ -741,6 +749,7 @@ struct adm_copp_open_respond {
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define ADM_CMDRSP_MULTI_CHANNEL_COPP_OPEN 0x00010311
|
||||
#define ADM_CMDRSP_MULTI_CHANNEL_COPP_OPEN_V3 0x00010334
|
||||
|
||||
|
||||
#define ASM_STREAM_PRIORITY_NORMAL 0
|
||||
@@ -1102,6 +1111,7 @@ struct asm_frame_meta_info {
|
||||
|
||||
/* Stream level commands */
|
||||
#define ASM_STREAM_CMD_OPEN_READ 0x00010BCB
|
||||
#define ASM_STREAM_CMD_OPEN_READ_V2_1 0x00010DB2
|
||||
struct asm_stream_cmd_open_read {
|
||||
struct apr_hdr hdr;
|
||||
u32 uMode;
|
||||
@@ -1110,6 +1120,16 @@ struct asm_stream_cmd_open_read {
|
||||
u32 format;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct asm_stream_cmd_open_read_v2_1 {
|
||||
struct apr_hdr hdr;
|
||||
u32 uMode;
|
||||
u32 src_endpoint;
|
||||
u32 pre_proc_top;
|
||||
u32 format;
|
||||
u16 bits_per_sample;
|
||||
u16 reserved;
|
||||
} __packed;
|
||||
|
||||
/* Supported formats */
|
||||
#define LINEAR_PCM 0x00010BE5
|
||||
#define DTMF 0x00010BE6
|
||||
@@ -1158,6 +1178,7 @@ struct asm_stream_cmd_open_read_compressed {
|
||||
} __packed;
|
||||
|
||||
#define ASM_STREAM_CMD_OPEN_WRITE 0x00010BCA
|
||||
#define ASM_STREAM_CMD_OPEN_WRITE_V2_1 0x00010DB1
|
||||
struct asm_stream_cmd_open_write {
|
||||
struct apr_hdr hdr;
|
||||
u32 uMode;
|
||||
|
||||
@@ -27,7 +27,7 @@ struct route_payload {
|
||||
int adm_open(int port, int path, int rate, int mode, int topology);
|
||||
|
||||
int adm_multi_ch_copp_open(int port, int path, int rate, int mode,
|
||||
int topology);
|
||||
int topology, int perfmode);
|
||||
|
||||
int adm_memory_map_regions(uint32_t *buf_add, uint32_t mempool_id,
|
||||
uint32_t *bufsz, uint32_t bufcnt);
|
||||
|
||||
@@ -160,6 +160,7 @@ struct audio_client {
|
||||
uint32_t io_mode;
|
||||
uint64_t time_stamp;
|
||||
atomic_t cmd_response;
|
||||
bool perf_mode;
|
||||
};
|
||||
|
||||
void q6asm_audio_client_free(struct audio_client *ac);
|
||||
@@ -182,6 +183,7 @@ int q6asm_audio_client_buf_free_contiguous(unsigned int dir,
|
||||
struct audio_client *ac);
|
||||
|
||||
int q6asm_open_read(struct audio_client *ac, uint32_t format);
|
||||
int q6asm_open_read_v2_1(struct audio_client *ac, uint32_t format);
|
||||
|
||||
int q6asm_open_read_compressed(struct audio_client *ac,
|
||||
uint32_t frames_per_buffer, uint32_t meta_data_mode);
|
||||
|
||||
Reference in New Issue
Block a user