#ifndef QDSP5AUDRECMSGI_H #define QDSP5AUDRECMSGI_H /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====* * * A U D I O R E C O R D M E S S A G E S * * GENERAL DESCRIPTION * This file contains defintions of format blocks of messages * that are sent by AUDREC Task * * REFERENCES * None * * EXTERNALIZED FUNCTIONS * None * * Copyright (c) 1992-2009, 2011 The Linux Foundation. All rights reserved. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * 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. * *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/ /*=========================================================================== EDIT HISTORY FOR FILE This section contains comments describing changes made to this file. Notice that changes are listed in reverse chronological order. $Header: //source/qcom/qct/multimedia2/Audio/drivers/QDSP5Driver/QDSP5Interface/main/latest/qdsp5audrecmsg.h#3 $ ============================================================================*/ /* * AUDRECTASK MESSAGES * AUDRECTASK uses audRecUpRlist to communicate with ARM * Location : MEMC * Buffer size : 4 * No of buffers in a queue : 2 */ /* * Message to notify that config command is done */ #define AUDREC_MSG_CMD_CFG_DONE_MSG 0x0002 #define AUDREC_MSG_CMD_CFG_DONE_MSG_LEN \ sizeof(struct audrec_msg_cmd_cfg_done_msg) #define AUDREC_MSG_CFG_DONE_TYPE_0_ENA 0x4000 #define AUDREC_MSG_CFG_DONE_TYPE_0_DIS 0x0000 #define AUDREC_MSG_CFG_DONE_TYPE_0_NO_UPDATE 0x0000 #define AUDREC_MSG_CFG_DONE_TYPE_0_UPDATE 0x8000 #define AUDREC_MSG_CFG_DONE_TYPE_1_ENA 0x4000 #define AUDREC_MSG_CFG_DONE_TYPE_1_DIS 0x0000 #define AUDREC_MSG_CFG_DONE_TYPE_1_NO_UPDATE 0x0000 #define AUDREC_MSG_CFG_DONE_TYPE_1_UPDATE 0x8000 #define AUDREC_MSG_CFG_DONE_ENC_ENA 0x8000 #define AUDREC_MSG_CFG_DONE_ENC_DIS 0x0000 struct audrec_msg_cmd_cfg_done_msg { unsigned short audrec_enc_type; unsigned short audrec_obj_idx; } __attribute__((packed)); /* * Message to notify arec0/1 or concurrent encoder cfg done * and recording params recieved by task */ #define AUDREC_MSG_CMD_AREC_PARAM_CFG_DONE_MSG 0x0003 #define AUDREC_MSG_CMD_AREC_PARAM_CFG_DONE_MSG_LEN \ sizeof(struct audrec_msg_cmd_arec_param_cfg_done_msg) #define AUDREC_MSG_AREC_PARAM_TYPE_0 0x0000 #define AUDREC_MSG_AREC_PARAM_TYPE_1 0x0001 struct audrec_msg_cmd_arec_param_cfg_done_msg { unsigned short audrec_obj_idx; } __attribute__((packed)); /* * Message to notify no more buffers are available in ext mem to DME * Or no concurrent encoder supported */ /* for 7x27 */ #define AUDREC_MSG_FATAL_ERR_MSG 0x0004 #define AUDREC_MSG_FATAL_ERR_MSG_LEN \ sizeof(struct audrec_msg_fatal_err_msg) #define AUDREC_MSG_FATAL_ERR_TYPE_0 0x0000 #define AUDREC_MSG_FATAL_ERR_TYPE_1 0x0001 struct audrec_msg_fatal_err_msg { unsigned short audrec_obj_idx; unsigned short audrec_err_id; } __attribute__((packed)); /* for 7x27A */ #define AUDREC_MSG_NO_EXT_PKT_AVAILABLE_MSG 0x0004 #define AUDREC_MSG_NO_EXT_PKT_AVAILABLE_MSG_LEN \ sizeof(struct audrec_msg_no_ext_pkt_avail_msg) #define AUDREC_MSG_NO_EXT_PKT_AVAILABLE_TYPE_0 0x0000 #define AUDREC_MSG_NO_EXT_PKT_AVAILABLE_TYPE_1 0x0001 struct audrec_msg_no_ext_pkt_avail_msg { unsigned short audrec_obj_idx; unsigned short audrec_err_id; } __packed; /* * Message to notify DME deliverd the encoded pkt to ext pkt buffer */ #define AUDREC_MSG_PACKET_READY_MSG 0x0005 #define AUDREC_MSG_PACKET_READY_MSG_LEN \ sizeof(struct audrec_msg_packet_ready_msg) #define AUDREC_MSG_PACKET_READY_TYPE_0 0x0000 #define AUDREC_MSG_PACKET_READY_TYPE_1 0x0001 struct audrec_msg_packet_ready_msg { unsigned short audrec_obj_idx; unsigned short pkt_counter_msw; unsigned short pkt_counter_lsw; unsigned short pkt_read_cnt_msw; unsigned short pkt_read_cnt_lsw; } __attribute__((packed)); /* * Message to notify external memory cfg done and recieved by task */ #define AUDREC_MSG_CMD_AREC_MEM_CFG_DONE_MSG 0x0006 #define AUDREC_MSG_CMD_AREC_MEM_CFG_DONE_MSG_LEN \ sizeof(struct audrec_msg_cmd_arec_mem_cfg_done_msg) struct audrec_msg_cmd_arec_mem_cfg_done_msg { unsigned short audrec_obj_idx; } __attribute__((packed)); /* * Message to indicate Routing mode * configuration success or failure */ #define AUDREC_MSG_CMD_ROUTING_MODE_DONE_MSG 0x0007 #define AUDREC_MSG_CMD_ROUTING_MODE_DONE_MSG_LEN \ sizeof(struct audrec_msg_cmd_routing_mode_done_msg) struct audrec_msg_cmd_routing_mode_done_msg { unsigned short configuration; } __packed; /* * Message to indicate pcm buffer configured */ #define AUDREC_CMD_PCM_CFG_ARM_TO_ENC_DONE_MSG 0x0008 #define AUDREC_CMD_PCM_CFG_ARM_TO_ENC_DONE_MSG_LEN \ sizeof(struct audrec_cmd_pcm_cfg_arm_to_enc_msg) struct audrec_cmd_pcm_cfg_arm_to_enc_msg { unsigned short configuration; } __packed; /* * Message to indicate encoded packet is delivered to external buffer in FTRT */ #define AUDREC_UP_NT_PACKET_READY_MSG 0x0009 #define AUDREC_UP_NT_PACKET_READY_MSG_LEN \ sizeof(struct audrec_up_nt_packet_ready_msg) struct audrec_up_nt_packet_ready_msg { unsigned short audrec_packetwrite_cnt_lsw; unsigned short audrec_packetwrite_cnt_msw; unsigned short audrec_upprev_readcount_lsw; unsigned short audrec_upprev_readcount_msw; } __packed; /* * Message to indicate pcm buffer is consumed */ #define AUDREC_CMD_PCM_BUFFER_PTR_UPDATE_ARM_TO_ENC_MSG 0x000A #define AUDREC_CMD_PCM_BUFFER_PTR_UPDATE_ARM_TO_ENC_MSG_LEN \ sizeof(struct audrec_cmd_pcm_buffer_ptr_update_arm_to_enc_msg) struct audrec_cmd_pcm_buffer_ptr_update_arm_to_enc_msg { unsigned short buffer_readcnt_msw; unsigned short buffer_readcnt_lsw; unsigned short number_of_buffers; unsigned short buffer_address_length[]; } __packed; /* * Message to indicate flush acknowledgement */ #define AUDREC_CMD_FLUSH_DONE_MSG 0x000B #define ADSP_MESSAGE_ID 0xFFFF #endif