00001 /* 00002 * Copyright (c) 2011, Texas Instruments Incorporated 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 00009 * * Redistributions of source code must retain the above copyright 00010 * notice, this list of conditions and the following disclaimer. 00011 * 00012 * * Redistributions in binary form must reproduce the above copyright 00013 * notice, this list of conditions and the following disclaimer in the 00014 * documentation and/or other materials provided with the distribution. 00015 * 00016 * * Neither the name of Texas Instruments Incorporated nor the names of 00017 * its contributors may be used to endorse or promote products derived 00018 * from this software without specific prior written permission. 00019 * 00020 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00021 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00022 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00023 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00024 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00025 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00026 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00027 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00028 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00029 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00030 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00031 * 00032 */ 00048 #ifndef ti_sdo_fc_ires_vicp_IRES_VICP2_ 00049 #define ti_sdo_fc_ires_vicp_IRES_VICP2_ 00050 00053 00054 00055 #ifdef __cplusplus 00056 extern "C" { 00057 #endif 00058 00059 #include <ti/xdais/ires.h> 00060 00064 #define IRES_VICP2_MAXRESOURCES 1 00065 00066 00070 #define IRES_VICP2_PROTOCOLNAME "ti.sdo.fc.ires.vicp2" 00071 00080 #define VICP2_MODNAME "ti.sdo.fc.ires.vicp2" 00081 00085 #define IRES_VICP2_NUMBUFFERS 16 00086 00090 #define IRES_VICP2_BADRESOURCE 0xFFFFFFFF 00091 00096 #define IMCOP_BUFFER_IMGBUF_A 0x0 00097 #define IMCOP_BUFFER_IMGBUF_B 0x1 00098 #define IMCOP_BUFFER_IMGBUF_C 0x2 00099 #define IMCOP_BUFFER_IMGBUF_D 0x3 00100 #define IMCOP_BUFFER_IMGBUF_E 0x4 00101 #define IMCOP_BUFFER_IMX0COEFFBUF 0x5 00102 #define IMCOP_BUFFER_IMX0CMDBUF 0x6 00103 #define IMCOP_BUFFER_IMX1COEFFBUF 0x7 00104 #define IMCOP_BUFFER_IMX1CMDBUF 0x8 00106 #define IMCOP_BUFFER_BABYIMXCMDBUFFER 0x9 00107 #define IMCOP_BUFFER_BABYIMXORIGBUFFER 0xA 00108 00109 #define IMCOP_BUFFER_BABYIMXREFBUFFER 0xB 00110 #define IMCOP_BUFFER_SEQUENCERPMEM 0xC 00112 #define IMCOP_BUFFER_QIQMEM 0xD 00113 #define IMCOP_BUFFER_HUFFMEM 0xE 00114 #define IMCOP_BUFFER_SEQBUF4 0xF 00115 00116 /* 00117 * Note, we wrap the PROTOCOLVERSION in an ifdef so the 00118 * resource managers and algs get this version data placed in their object 00119 * files. Apps, which include rman.h, will have this 'NOPROTOCOLREV' defined. 00120 */ 00121 #ifndef ti_sdo_fc_ires_NOPROTOCOLREV 00122 00126 static IRES_ProtocolRevision IRES_VICP2_PROTOCOLREVISION = {1, 0, 0}; 00127 00128 #endif 00129 00133 typedef struct IRES_VICP2_Obj *IRES_VICP2_Handle; 00134 00138 typedef struct IRES_VICP2_ProtocolArgs { 00139 00140 int size; 00141 IRES_RequestMode mode; 00145 short requestIMX0; 00146 short requestIMX1; 00148 short requestMJCP; 00149 short requestNSF; 00151 unsigned int requestIMCOPBuffers; 00158 unsigned int numMemoryRequests; 00161 unsigned int memRequestSizes[IRES_VICP2_NUMBUFFERS]; 00164 } IRES_VICP2_ProtocolArgs; 00165 00171 typedef struct IRES_VICP2_Obj { 00172 00173 IRES_Obj ires; 00174 short assignedIMX0; 00175 short assignedIMX1; 00177 short assignedMJCP; 00178 short assignedNSF; 00179 00180 unsigned int assignedIMCOPBuffers[IRES_VICP2_NUMBUFFERS]; 00184 short numMemBufs; 00186 unsigned int assignedMemAddrs[IRES_VICP2_NUMBUFFERS]; 00190 unsigned int assignedMemSizes[IRES_VICP2_NUMBUFFERS]; 00191 00192 unsigned int configBaseAddress; 00194 unsigned int dmaViewConfigBaseAddr; 00198 unsigned int pscRegisterSpace; 00201 } IRES_VICP2_Obj; 00202 00203 /* 00204 * @brief VICP Buffer Layout 00205 */ 00206 typedef struct IRES_VICP2_Buffers { 00207 00208 int size; 00210 unsigned char *vicp_cfg_base; 00211 00212 unsigned char *imgBufA_base; 00213 unsigned char *imgBufB_base; 00214 unsigned char *imgBufC_base; 00215 unsigned char *imgBufD_base; 00216 unsigned char *imgBufE_base; 00217 unsigned char *imx0CoeffBuff_base; 00218 unsigned char *imx0CmdBuf_base; 00219 unsigned char *imx1CoeffBuff_base; 00220 unsigned char *imx1CmdBuf_base; 00221 00222 00223 unsigned char *babyImxCmdBuf_base; 00224 unsigned char *babyImxOrigBuf_base; 00225 unsigned char *babyImxRefBuf_base; 00226 unsigned char *sequencerPmem_base; 00227 unsigned int *qiqmem_base; 00228 unsigned int *predmem_base; 00229 unsigned int *mvmem; 00230 unsigned int *huffmem; 00231 unsigned int *seqBuf1; 00232 unsigned int *seqBuf2; 00233 unsigned int *seqBuf3; 00234 unsigned int *seqBuf4; 00235 unsigned int *sequencerDmem; 00236 /* . . . */ 00237 00238 } IRES_VICP2_Buffers; 00239 00240 00241 /* 00242 * @brief Static Resource Properties 00243 */ 00244 typedef struct IRES_VICP2_Properties { 00245 00246 int size; 00247 00248 IRES_VICP2_Buffers buffers; 00249 00250 } IRES_VICP2_Properties; 00251 00252 00253 #ifdef __cplusplus 00254 } 00255 #endif /* extern "C" */ 00256 00257 00260 #endif 00261 /* 00262 * @(#) ti.sdo.fc.ires.vicp; 1, 0, 1,1; 10-10-2011 08:45:07; /db/atree/library/trees/fc/fc-o32/src/ xlibrary 00263 00264 */ 00265