1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations: 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise: 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 //<MStar Software> 78 //////////////////////////////////////////////////////////////////////////////// 79 // 80 // Copyright (c) 2006-2007 MStar Semiconductor, Inc. 81 // All rights reserved. 82 // 83 // Unless otherwise stipulated in writing, any and all information contained 84 // herein regardless in any format shall remain the sole proprietary of 85 // MStar Semiconductor Inc. and be kept in strict confidence 86 // ("MStar Confidential Information") by the recipient. 87 // Any unauthorized act including without limitation unauthorized disclosure, 88 // copying, use, reproduction, sale, distribution, modification, disassembling, 89 // reverse engineering and compiling of the contents of MStar Confidential 90 // Information is unlawful and strictly prohibited. MStar hereby reserves the 91 // rights to any and all damages, losses, costs and expenses resulting therefrom. 92 // 93 //////////////////////////////////////////////////////////////////////////////// 94 95 /////////////////////////////////////////////////////////////////////////////////////////////////// 96 /// 97 /// @file drvHVD_Common.h 98 /// @brief MStar General Data Types 99 /// @author MStar Semiconductor Inc. 100 /////////////////////////////////////////////////////////////////////////////////////////////////// 101 102 #ifndef _DRVHVD_COMMON_H_ 103 #define _DRVHVD_COMMON_H_ 104 #if !(defined(REDLION_LINUX_KERNEL_ENVI)) 105 #include "MsCommon.h" 106 #include "MsVersion.h" 107 #else //defined(REDLION_LINUX_KERNEL_ENVI) 108 //------------------------------------------------------------------------------------------------- 109 // System Data Type 110 //------------------------------------------------------------------------------------------------- 111 112 #if !(defined( __MDRV_TYPES_H__ )) 113 /// data type unsigned char, data length 1 byte 114 typedef unsigned char MS_U8; // 1 byte 115 /// data type unsigned short, data length 2 byte 116 typedef unsigned short MS_U16; // 2 bytes 117 /// data type unsigned int, data length 4 byte 118 typedef unsigned long MS_U32; // 4 bytes 119 /// data type unsigned int, data length 8 byte 120 typedef unsigned long long MS_U64; // 8 bytes 121 /// data type signed char, data length 1 byte 122 typedef signed char MS_S8; // 1 byte 123 /// data type signed short, data length 2 byte 124 typedef signed short MS_S16; // 2 bytes 125 /// data type signed int, data length 4 byte 126 typedef signed long MS_S32; // 4 bytes 127 /// data type signed int, data length 8 byte 128 typedef signed long long MS_S64; // 8 bytes 129 130 /// data type float, data length 4 byte 131 typedef float MS_FLOAT; // 4 bytes 132 133 /// definition for MS_BOOL 134 typedef unsigned char MS_BOOL; 135 /// definition for VOID 136 typedef void VOID; 137 /// definition for FILEID 138 typedef MS_S32 FILEID; 139 140 #endif 141 142 typedef unsigned long MS_PHYADDR; // 32bit physical address 143 144 145 /// data type null pointer 146 #ifdef NULL 147 #undef NULL 148 #endif 149 #define NULL 0 150 151 /// data type hardware physical address 152 153 154 //------------------------------------------------------------------------------------------------- 155 // Software Data Type 156 //------------------------------------------------------------------------------------------------- 157 158 159 //[TODO] use MS_U8, ... instead 160 // data type for 8051 code 161 //typedef MS_U16 WORD; 162 //typedef MS_U8 BYTE; 163 164 165 #ifndef true 166 /// definition for true 167 #define true 1 168 /// definition for false 169 #define false 0 170 #endif 171 172 173 #if !defined(TRUE) && !defined(FALSE) 174 /// definition for TRUE 175 #define TRUE 1 176 /// definition for FALSE 177 #define FALSE 0 178 #endif 179 180 ///Define MS FB Format, to share with GE,GOP 181 /// FIXME THE NAME NEED TO BE REFINED, AND MUST REMOVE UNNESSARY FMT 182 typedef enum 183 { 184 /// color format I1 185 E_MS_FMT_I1 = 0x0, 186 /// color format I2 187 E_MS_FMT_I2 = 0x1, 188 /// color format I4 189 E_MS_FMT_I4 = 0x2, 190 /// color format palette 256(I8) 191 E_MS_FMT_I8 = 0x4, 192 /// color format blinking display 193 E_MS_FMT_FaBaFgBg2266 = 0x6, 194 /// color format for blinking display format 195 E_MS_FMT_1ABFgBg12355 = 0x7, 196 /// color format RGB565 197 E_MS_FMT_RGB565 = 0x8, 198 /// color format ARGB1555 199 /// @note <b>[URANUS] <em>ARGB1555 is only RGB555</em></b> 200 E_MS_FMT_ARGB1555 = 0x9, 201 /// color format ARGB4444 202 E_MS_FMT_ARGB4444 = 0xa, 203 /// color format ARGB1555 DST 204 E_MS_FMT_ARGB1555_DST = 0xc, 205 /// color format YUV422 206 E_MS_FMT_YUV422 = 0xe, 207 /// color format ARGB8888 208 E_MS_FMT_ARGB8888 = 0xf, 209 210 E_MS_FMT_GENERIC = 0xFFFF, 211 212 } MS_ColorFormat; 213 214 215 typedef union _MSIF_Version 216 { 217 struct _DDI 218 { 219 MS_U8 tag[4]; 220 MS_U8 class[2]; 221 MS_U16 customer; 222 MS_U16 model; 223 MS_U16 chip; 224 MS_U8 cpu; 225 MS_U8 name[4]; 226 MS_U8 version[2]; 227 MS_U8 build[2]; 228 MS_U8 change[8]; 229 MS_U8 os; 230 } DDI; 231 232 struct _MW 233 { 234 } MW; 235 236 struct _APP 237 { 238 } APP; 239 240 } MSIF_Version; 241 242 #ifndef BIT 243 #define BIT(_bit_) (1 << (_bit_)) 244 #endif 245 246 #ifndef BITS 247 #ifdef _BIT 248 #define BITS(bits,value) ((_BIT(((1)?bits)+1)-_BIT(((0)?bits))) & (value<<((0)?bits))) 249 #elif defined(BIT) 250 #define BITS(_bits_, _val_) ((BIT(((1)?_bits_)+1)-BIT(((0)?_bits_))) & (_val_<<((0)?_bits_))) 251 #endif 252 #endif 253 254 #ifndef BMASK 255 #ifdef _BIT 256 #define BMASK(bits) (_BIT(((1)?bits)+1)-_BIT(((0)?bits))) 257 #elif defined(BIT) 258 #define BMASK(_bits_) (BIT(((1)?_bits_)+1)-BIT(((0)?_bits_))) 259 #endif 260 #endif 261 262 #define READ_BYTE(_reg) (*(volatile MS_U8*)(_reg)) 263 #define READ_WORD(_reg) (*(volatile MS_U16*)(_reg)) 264 #define READ_LONG(_reg) (*(volatile MS_U32*)(_reg)) 265 #define WRITE_BYTE(_reg, _val) { (*((volatile MS_U8*)(_reg))) = (MS_U8)(_val); } 266 #define WRITE_WORD(_reg, _val) { (*((volatile MS_U16*)(_reg))) = (MS_U16)(_val); } 267 #define WRITE_LONG(_reg, _val) { (*((volatile MS_U32*)(_reg))) = (MS_U32)(_val); } 268 269 #define MSIF_TAG {'M','S','I','F'} // MSIF 270 #define MSIF_CLASS {'0','0'} // DRV/API (DDI) 271 #define MSIF_CUS 0x0000 // MStar Common library 272 #define MSIF_MOD 0x0000 // MStar Common library 273 #define MSIF_CHIP 0x000B 274 #define MSIF_CPU '0' 275 #define MSIF_OS '2' 276 277 #define DISABLE 0 278 #define ENABLE 1 279 280 281 282 #endif //defined(REDLION_LINUX_KERNEL_ENVI) 283 284 #endif // _DRVHVD_COMMON_H_ 285