123 lines
3.2 KiB
C
123 lines
3.2 KiB
C
|
/* Copyright (c) 2009-2011, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
* only version 2 as published by the Free Software Foundation.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef QDSP5AUDRECCMDI_H
|
||
|
#define QDSP5AUDRECCMDI_H
|
||
|
|
||
|
/*
|
||
|
* AUDRECTASK COMMANDS
|
||
|
* ARM uses 2 queues to communicate with the AUDRECTASK
|
||
|
* 1.uPAudRec[i]CmdQueue, where i=0,1,2
|
||
|
* Location :MEMC
|
||
|
* Buffer Size : 5
|
||
|
* No of Buffers in a queue : 2
|
||
|
* 2.uPAudRec[i]BitstreamQueue, where i=0,1,2
|
||
|
* Location : MEMC
|
||
|
* Buffer Size : 5
|
||
|
* No of buffers in a queue : 3
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Commands on uPAudRec[i]CmdQueue, where i=0,1,2
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Command to configure memory for enabled encoder
|
||
|
*/
|
||
|
|
||
|
#define AUDREC_CMD_MEM_CFG_CMD 0x0000
|
||
|
#define AUDREC_CMD_ARECMEM_CFG_LEN \
|
||
|
sizeof(struct audrec_cmd_arecmem_cfg)
|
||
|
|
||
|
struct audrec_cmd_arecmem_cfg {
|
||
|
unsigned short cmd_id;
|
||
|
unsigned short audrec_up_pkt_intm_count;
|
||
|
unsigned short audrec_ext_pkt_start_addr_msw;
|
||
|
unsigned short audrec_ext_pkt_start_addr_lsw;
|
||
|
unsigned short audrec_ext_pkt_buf_number;
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
/*
|
||
|
* Command to configure pcm input memory
|
||
|
*/
|
||
|
|
||
|
#define AUDREC_CMD_PCM_CFG_ARM_TO_ENC 0x0001
|
||
|
#define AUDREC_CMD_PCM_CFG_ARM_TO_ENC_LEN \
|
||
|
sizeof(struct audrec_cmd_pcm_cfg_arm_to_enc)
|
||
|
|
||
|
struct audrec_cmd_pcm_cfg_arm_to_enc {
|
||
|
unsigned short cmd_id;
|
||
|
unsigned short config_update_flag;
|
||
|
unsigned short enable_flag;
|
||
|
unsigned short sampling_freq;
|
||
|
unsigned short channels;
|
||
|
unsigned short frequency_of_intimation;
|
||
|
unsigned short max_number_of_buffers;
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
#define AUDREC_PCM_CONFIG_UPDATE_FLAG_ENABLE -1
|
||
|
#define AUDREC_PCM_CONFIG_UPDATE_FLAG_DISABLE 0
|
||
|
|
||
|
#define AUDREC_ENABLE_FLAG_VALUE -1
|
||
|
#define AUDREC_DISABLE_FLAG_VALUE 0
|
||
|
|
||
|
/*
|
||
|
* Command to intimate available pcm buffer
|
||
|
*/
|
||
|
|
||
|
#define AUDREC_CMD_PCM_BUFFER_PTR_REFRESH_ARM_TO_ENC 0x0002
|
||
|
#define AUDREC_CMD_PCM_BUFFER_PTR_REFRESH_ARM_TO_ENC_LEN \
|
||
|
sizeof(struct audrec_cmd_pcm_buffer_ptr_refresh_arm_enc)
|
||
|
|
||
|
struct audrec_cmd_pcm_buffer_ptr_refresh_arm_enc {
|
||
|
unsigned short cmd_id;
|
||
|
unsigned short num_buffers;
|
||
|
unsigned short buffer_write_cnt_msw;
|
||
|
unsigned short buffer_write_cnt_lsw;
|
||
|
unsigned short buf_address_length[8];/*this array holds address
|
||
|
and length details of
|
||
|
two buffers*/
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
/*
|
||
|
* Command to flush
|
||
|
*/
|
||
|
|
||
|
#define AUDREC_CMD_FLUSH 0x0003
|
||
|
#define AUDREC_CMD_FLUSH_LEN \
|
||
|
sizeof(struct audrec_cmd_flush)
|
||
|
|
||
|
struct audrec_cmd_flush {
|
||
|
unsigned short cmd_id;
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
/*
|
||
|
* Commands on uPAudRec[i]BitstreamQueue, where i=0,1,2
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Command to indicate current packet read count
|
||
|
*/
|
||
|
|
||
|
#define UP_AUDREC_PACKET_EXT_PTR 0x0000
|
||
|
#define UP_AUDREC_PACKET_EXT_PTR_LEN \
|
||
|
sizeof(up_audrec_packet_ext_ptr)
|
||
|
|
||
|
struct up_audrec_packet_ext_ptr {
|
||
|
unsigned short cmd_id;
|
||
|
unsigned short audrec_up_curr_read_count_lsw;
|
||
|
unsigned short audrec_up_curr_read_count_msw;
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
#endif /* QDSP5AUDRECCMDI_H */
|