1#ifndef QDSP5VFEMSGI_H 2#define QDSP5VFEMSGI_H 3 4/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====* 5 6 V F E I N T E R N A L M E S S A G E S 7 8GENERAL DESCRIPTION 9 This file contains defintions of format blocks of commands 10 that are sent by VFE Task 11 12REFERENCES 13 None 14 15EXTERNALIZED FUNCTIONS 16 None 17 18Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated. 19 20This software is licensed under the terms of the GNU General Public 21License version 2, as published by the Free Software Foundation, and 22may be copied, distributed, and modified under those terms. 23 24This program is distributed in the hope that it will be useful, 25but WITHOUT ANY WARRANTY; without even the implied warranty of 26MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27GNU General Public License for more details. 28 29*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/ 30/*=========================================================================== 31 32 EDIT HISTORY FOR FILE 33 34This section contains comments describing changes made to this file. 35Notice that changes are listed in reverse chronological order. 36 37$Header: //source/qcom/qct/multimedia2/AdspSvc/7XXX/qdsp5cmd/video/qdsp5vfemsg.h#2 $ $DateTime: 2008/07/30 10:50:23 $ $Author: pavanr $ 38Revision History: 39 40when who what, where, why 41-------- --- ---------------------------------------------------------- 4206/12/08 sv initial version 43===========================================================================*/ 44 45 46/* 47 * Message to acknowledge CMD_VFE_REST command 48 */ 49 50#define VFE_MSG_RESET_ACK 0x0000 51#define VFE_MSG_RESET_ACK_LEN sizeof(vfe_msg_reset_ack) 52 53typedef struct { 54} __attribute__((packed)) vfe_msg_reset_ack; 55 56 57/* 58 * Message to acknowledge CMD_VFE_START command 59 */ 60 61#define VFE_MSG_START_ACK 0x0001 62#define VFE_MSG_START_ACK_LEN sizeof(vfe_msg_start_ack) 63 64typedef struct { 65} __attribute__((packed)) vfe_msg_start_ack; 66 67/* 68 * Message to acknowledge CMD_VFE_STOP command 69 */ 70 71#define VFE_MSG_STOP_ACK 0x0002 72#define VFE_MSG_STOP_ACK_LEN sizeof(vfe_msg_stop_ack) 73 74typedef struct { 75} __attribute__((packed)) vfe_msg_stop_ack; 76 77 78/* 79 * Message to acknowledge CMD_VFE_UPDATE command 80 */ 81 82#define VFE_MSG_UPDATE_ACK 0x0003 83#define VFE_MSG_UPDATE_ACK_LEN sizeof(vfe_msg_update_ack) 84 85typedef struct { 86} __attribute__((packed)) vfe_msg_update_ack; 87 88 89/* 90 * Message to notify the ARM that snapshot processing is complete 91 * and that the VFE is now STATE_VFE_IDLE 92 */ 93 94#define VFE_MSG_SNAPSHOT_DONE 0x0004 95#define VFE_MSG_SNAPSHOT_DONE_LEN \ 96 sizeof(vfe_msg_snapshot_done) 97 98typedef struct { 99} __attribute__((packed)) vfe_msg_snapshot_done; 100 101 102 103/* 104 * Message to notify ARM that illegal cmd was received and 105 * system is in the IDLE state 106 */ 107 108#define VFE_MSG_ILLEGAL_CMD 0x0005 109#define VFE_MSG_ILLEGAL_CMD_LEN \ 110 sizeof(vfe_msg_illegal_cmd) 111 112typedef struct { 113 unsigned int status; 114} __attribute__((packed)) vfe_msg_illegal_cmd; 115 116 117/* 118 * Message to notify ARM that op1 buf is full and ready 119 */ 120 121#define VFE_MSG_OP1 0x0006 122#define VFE_MSG_OP1_LEN sizeof(vfe_msg_op1) 123 124typedef struct { 125 unsigned int op1_buf_y_addr; 126 unsigned int op1_buf_cbcr_addr; 127 unsigned int black_level_even_col; 128 unsigned int black_level_odd_col; 129 unsigned int defect_pixels_detected; 130 unsigned int asf_max_edge; 131} __attribute__((packed)) vfe_msg_op1; 132 133 134/* 135 * Message to notify ARM that op2 buf is full and ready 136 */ 137 138#define VFE_MSG_OP2 0x0007 139#define VFE_MSG_OP2_LEN sizeof(vfe_msg_op2) 140 141typedef struct { 142 unsigned int op2_buf_y_addr; 143 unsigned int op2_buf_cbcr_addr; 144 unsigned int black_level_even_col; 145 unsigned int black_level_odd_col; 146 unsigned int defect_pixels_detected; 147 unsigned int asf_max_edge; 148} __attribute__((packed)) vfe_msg_op2; 149 150 151/* 152 * Message to notify ARM that autofocus(af) stats are ready 153 */ 154 155#define VFE_MSG_STATS_AF 0x0008 156#define VFE_MSG_STATS_AF_LEN sizeof(vfe_msg_stats_af) 157 158typedef struct { 159 unsigned int af_stats_op_buffer; 160} __attribute__((packed)) vfe_msg_stats_af; 161 162 163/* 164 * Message to notify ARM that white balance(wb) and exposure (exp) 165 * stats are ready 166 */ 167 168#define VFE_MSG_STATS_WB_EXP 0x0009 169#define VFE_MSG_STATS_WB_EXP_LEN \ 170 sizeof(vfe_msg_stats_wb_exp) 171 172typedef struct { 173 unsigned int wb_exp_stats_op_buf; 174} __attribute__((packed)) vfe_msg_stats_wb_exp; 175 176 177/* 178 * Message to notify the ARM that histogram(hg) stats are ready 179 */ 180 181#define VFE_MSG_STATS_HG 0x000A 182#define VFE_MSG_STATS_HG_LEN sizeof(vfe_msg_stats_hg) 183 184typedef struct { 185 unsigned int hg_stats_op_buf; 186} __attribute__((packed)) vfe_msg_stats_hg; 187 188 189/* 190 * Message to notify the ARM that epoch1 event occurred in the CAMIF 191 */ 192 193#define VFE_MSG_EPOCH1 0x000B 194#define VFE_MSG_EPOCH1_LEN sizeof(vfe_msg_epoch1) 195 196typedef struct { 197} __attribute__((packed)) vfe_msg_epoch1; 198 199 200/* 201 * Message to notify the ARM that epoch2 event occurred in the CAMIF 202 */ 203 204#define VFE_MSG_EPOCH2 0x000C 205#define VFE_MSG_EPOCH2_LEN sizeof(vfe_msg_epoch2) 206 207typedef struct { 208} __attribute__((packed)) vfe_msg_epoch2; 209 210 211/* 212 * Message to notify the ARM that sync timer1 op is completed 213 */ 214 215#define VFE_MSG_SYNC_T1_DONE 0x000D 216#define VFE_MSG_SYNC_T1_DONE_LEN sizeof(vfe_msg_sync_t1_done) 217 218typedef struct { 219} __attribute__((packed)) vfe_msg_sync_t1_done; 220 221 222/* 223 * Message to notify the ARM that sync timer2 op is completed 224 */ 225 226#define VFE_MSG_SYNC_T2_DONE 0x000E 227#define VFE_MSG_SYNC_T2_DONE_LEN sizeof(vfe_msg_sync_t2_done) 228 229typedef struct { 230} __attribute__((packed)) vfe_msg_sync_t2_done; 231 232 233/* 234 * Message to notify the ARM that async t1 operation completed 235 */ 236 237#define VFE_MSG_ASYNC_T1_DONE 0x000F 238#define VFE_MSG_ASYNC_T1_DONE_LEN sizeof(vfe_msg_async_t1_done) 239 240typedef struct { 241} __attribute__((packed)) vfe_msg_async_t1_done; 242 243 244 245/* 246 * Message to notify the ARM that async t2 operation completed 247 */ 248 249#define VFE_MSG_ASYNC_T2_DONE 0x0010 250#define VFE_MSG_ASYNC_T2_DONE_LEN sizeof(vfe_msg_async_t2_done) 251 252typedef struct { 253} __attribute__((packed)) vfe_msg_async_t2_done; 254 255 256 257/* 258 * Message to notify the ARM that an error has occurred 259 */ 260 261#define VFE_MSG_ERROR 0x0011 262#define VFE_MSG_ERROR_LEN sizeof(vfe_msg_error) 263 264#define VFE_MSG_ERR_COND_NO_CAMIF_ERR 0x0000 265#define VFE_MSG_ERR_COND_CAMIF_ERR 0x0001 266#define VFE_MSG_ERR_COND_OP1_Y_NO_BUS_OF 0x0000 267#define VFE_MSG_ERR_COND_OP1_Y_BUS_OF 0x0002 268#define VFE_MSG_ERR_COND_OP1_CBCR_NO_BUS_OF 0x0000 269#define VFE_MSG_ERR_COND_OP1_CBCR_BUS_OF 0x0004 270#define VFE_MSG_ERR_COND_OP2_Y_NO_BUS_OF 0x0000 271#define VFE_MSG_ERR_COND_OP2_Y_BUS_OF 0x0008 272#define VFE_MSG_ERR_COND_OP2_CBCR_NO_BUS_OF 0x0000 273#define VFE_MSG_ERR_COND_OP2_CBCR_BUS_OF 0x0010 274#define VFE_MSG_ERR_COND_AF_NO_BUS_OF 0x0000 275#define VFE_MSG_ERR_COND_AF_BUS_OF 0x0020 276#define VFE_MSG_ERR_COND_WB_EXP_NO_BUS_OF 0x0000 277#define VFE_MSG_ERR_COND_WB_EXP_BUS_OF 0x0040 278#define VFE_MSG_ERR_COND_NO_AXI_ERR 0x0000 279#define VFE_MSG_ERR_COND_AXI_ERR 0x0080 280 281#define VFE_MSG_CAMIF_STS_IDLE 0x0000 282#define VFE_MSG_CAMIF_STS_CAPTURE_DATA 0x0001 283 284typedef struct { 285 unsigned int err_cond; 286 unsigned int camif_sts; 287} __attribute__((packed)) vfe_msg_error; 288 289 290#endif 291