Home | History | Annotate | Download | only in hwdefs
      1 /*
      2  * Copyright (c) 2011 Intel Corporation. All Rights Reserved.
      3  * Copyright (c) Imagination Technologies Limited, UK
      4  *
      5  * Permission is hereby granted, free of charge, to any person obtaining a
      6  * copy of this software and associated documentation files (the
      7  * "Software"), to deal in the Software without restriction, including
      8  * without limitation the rights to use, copy, modify, merge, publish,
      9  * distribute, sub license, and/or sell copies of the Software, and to
     10  * permit persons to whom the Software is furnished to do so, subject to
     11  * the following conditions:
     12  *
     13  * The above copyright notice and this permission notice (including the
     14  * next paragraph) shall be included in all copies or substantial portions
     15  * of the Software.
     16  *
     17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     18  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
     20  * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
     21  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
     22  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
     23  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     24  */
     25 
     26 #ifndef _REGCONV_H_topaz_vlc_regs_h
     27 #define _REGCONV_H_topaz_vlc_regs_h
     28 
     29 #ifdef __cplusplus
     30 #include "img_types.h"
     31 #include "systemc_utils.h"
     32 #endif
     33 
     34 
     35 /* Register CR_VLC_CONTROL */
     36 #define TOPAZ_VLC_CR_VLC_CONTROL    0x0000
     37 #define MASK_TOPAZ_VLC_CR_CODEC     0x00000003
     38 #define SHIFT_TOPAZ_VLC_CR_CODEC    0
     39 #define REGNUM_TOPAZ_VLC_CR_CODEC   0x0000
     40 #define SIGNED_TOPAZ_VLC_CR_CODEC   0
     41 
     42 #define MASK_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0x0000000C
     43 #define SHIFT_TOPAZ_VLC_CR_SLICE_CODING_TYPE 2
     44 #define REGNUM_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0x0000
     45 #define SIGNED_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0
     46 
     47 #define MASK_TOPAZ_VLC_CR_START     0x00000010
     48 #define SHIFT_TOPAZ_VLC_CR_START    4
     49 #define REGNUM_TOPAZ_VLC_CR_START   0x0000
     50 #define SIGNED_TOPAZ_VLC_CR_START   0
     51 
     52 #define MASK_TOPAZ_VLC_CR_FLUSH     0x00000020
     53 #define SHIFT_TOPAZ_VLC_CR_FLUSH    5
     54 #define REGNUM_TOPAZ_VLC_CR_FLUSH   0x0000
     55 #define SIGNED_TOPAZ_VLC_CR_FLUSH   0
     56 
     57 #define MASK_TOPAZ_VLC_CR_FORCE_SKIP 0x00000040
     58 #define SHIFT_TOPAZ_VLC_CR_FORCE_SKIP 6
     59 #define REGNUM_TOPAZ_VLC_CR_FORCE_SKIP 0x0000
     60 #define SIGNED_TOPAZ_VLC_CR_FORCE_SKIP 0
     61 
     62 #define MASK_TOPAZ_VLC_CR_DISABLE_SKIP 0x00000080
     63 #define SHIFT_TOPAZ_VLC_CR_DISABLE_SKIP 7
     64 #define REGNUM_TOPAZ_VLC_CR_DISABLE_SKIP 0x0000
     65 #define SIGNED_TOPAZ_VLC_CR_DISABLE_SKIP 0
     66 
     67 #define MASK_TOPAZ_VLC_CR_CABAC_ENABLE 0x00000100
     68 #define SHIFT_TOPAZ_VLC_CR_CABAC_ENABLE 8
     69 #define REGNUM_TOPAZ_VLC_CR_CABAC_ENABLE 0x0000
     70 #define SIGNED_TOPAZ_VLC_CR_CABAC_ENABLE 0
     71 
     72 #define MASK_TOPAZ_VLC_CR_VLC_FIELD_CODED 0x00000200
     73 #define SHIFT_TOPAZ_VLC_CR_VLC_FIELD_CODED 9
     74 #define REGNUM_TOPAZ_VLC_CR_VLC_FIELD_CODED 0x0000
     75 #define SIGNED_TOPAZ_VLC_CR_VLC_FIELD_CODED 0
     76 
     77 #define MASK_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 0x00000400
     78 #define SHIFT_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 10
     79 #define REGNUM_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 0x0000
     80 #define SIGNED_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 0
     81 
     82 #define MASK_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 0x00000800
     83 #define SHIFT_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 11
     84 #define REGNUM_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 0x0000
     85 #define SIGNED_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 0
     86 
     87 #define MASK_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 0x00001000
     88 #define SHIFT_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 12
     89 #define REGNUM_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 0x0000
     90 #define SIGNED_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 0
     91 
     92 #define MASK_TOPAZ_VLC_CR_VLC_P_REF_IDX 0x00002000
     93 #define SHIFT_TOPAZ_VLC_CR_VLC_P_REF_IDX 13
     94 #define REGNUM_TOPAZ_VLC_CR_VLC_P_REF_IDX 0x0000
     95 #define SIGNED_TOPAZ_VLC_CR_VLC_P_REF_IDX 0
     96 
     97 #define MASK_TOPAZ_VLC_CR_DISCARD_CODED_DATA 0x00004000
     98 #define SHIFT_TOPAZ_VLC_CR_DISCARD_CODED_DATA 14
     99 #define REGNUM_TOPAZ_VLC_CR_DISCARD_CODED_DATA 0x0000
    100 #define SIGNED_TOPAZ_VLC_CR_DISCARD_CODED_DATA 0
    101 
    102 #define MASK_TOPAZ_VLC_CR_FIELD_SELECT 0x00008000
    103 #define SHIFT_TOPAZ_VLC_CR_FIELD_SELECT 15
    104 #define REGNUM_TOPAZ_VLC_CR_FIELD_SELECT 0x0000
    105 #define SIGNED_TOPAZ_VLC_CR_FIELD_SELECT 0
    106 
    107 #define MASK_TOPAZ_VLC_CR_CODEC_EXTEND 0x10000000
    108 #define SHIFT_TOPAZ_VLC_CR_CODEC_EXTEND 28
    109 #define REGNUM_TOPAZ_VLC_CR_CODEC_EXTEND 0x0000
    110 #define SIGNED_TOPAZ_VLC_CR_CODEC_EXTEND 0
    111 
    112 /* Register CR_VLC_STATUS */
    113 #define TOPAZ_VLC_CR_VLC_STATUS     0x0004
    114 #define MASK_TOPAZ_VLC_CR_BUSY      0x00000001
    115 #define SHIFT_TOPAZ_VLC_CR_BUSY     0
    116 #define REGNUM_TOPAZ_VLC_CR_BUSY    0x0004
    117 #define SIGNED_TOPAZ_VLC_CR_BUSY    0
    118 
    119 #define MASK_TOPAZ_VLC_CR_RECODE_AS_IPCM 0x00000004
    120 #define SHIFT_TOPAZ_VLC_CR_RECODE_AS_IPCM 2
    121 #define REGNUM_TOPAZ_VLC_CR_RECODE_AS_IPCM 0x0004
    122 #define SIGNED_TOPAZ_VLC_CR_RECODE_AS_IPCM 0
    123 
    124 /* Register CR_VLC_INFO_0 */
    125 #define TOPAZ_VLC_CR_VLC_INFO_0     0x0008
    126 #define MASK_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 0x0003E000
    127 #define SHIFT_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 13
    128 #define REGNUM_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 0x0008
    129 #define SIGNED_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 0
    130 
    131 /* Register CR_VLC_INFO_1 */
    132 #define TOPAZ_VLC_CR_VLC_INFO_1     0x000C
    133 #define MASK_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0x0000FFFF
    134 #define SHIFT_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0
    135 #define REGNUM_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0x000C
    136 #define SIGNED_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0
    137 
    138 #define MASK_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 0xFFFF0000
    139 #define SHIFT_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 16
    140 #define REGNUM_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 0x000C
    141 #define SIGNED_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 0
    142 
    143 /* Register CR_VLC_INFO_2 */
    144 #define TOPAZ_VLC_CR_VLC_INFO_2     0x0010
    145 #define MASK_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0x0000FFFF
    146 #define SHIFT_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0
    147 #define REGNUM_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0x0010
    148 #define SIGNED_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0
    149 
    150 #define MASK_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 0xFFFF0000
    151 #define SHIFT_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 16
    152 #define REGNUM_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 0x0010
    153 #define SIGNED_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 0
    154 
    155 /* Register CR_VLC_STUFF_HEAD_CTRL */
    156 #define TOPAZ_VLC_CR_VLC_STUFF_HEAD_CTRL 0x0014
    157 #define MASK_TOPAZ_VLC_CR_HEADER_ELEMENTS 0x0000001F
    158 #define SHIFT_TOPAZ_VLC_CR_HEADER_ELEMENTS 0
    159 #define REGNUM_TOPAZ_VLC_CR_HEADER_ELEMENTS 0x0014
    160 #define SIGNED_TOPAZ_VLC_CR_HEADER_ELEMENTS 0
    161 
    162 #define MASK_TOPAZ_VLC_CR_STUFFING_WORDS 0x00003FE0
    163 #define SHIFT_TOPAZ_VLC_CR_STUFFING_WORDS 5
    164 #define REGNUM_TOPAZ_VLC_CR_STUFFING_WORDS 0x0014
    165 #define SIGNED_TOPAZ_VLC_CR_STUFFING_WORDS 0
    166 
    167 #define MASK_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 0x80000000
    168 #define SHIFT_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 31
    169 #define REGNUM_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 0x0014
    170 #define SIGNED_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 0
    171 
    172 /* Register CR_VLC_HEADER_FIFO */
    173 #define TOPAZ_VLC_CR_VLC_HEADER_FIFO 0x0018
    174 #define MASK_TOPAZ_VLC_CR_HEADER_DATA 0xFFFFFFFF
    175 #define SHIFT_TOPAZ_VLC_CR_HEADER_DATA 0
    176 #define REGNUM_TOPAZ_VLC_CR_HEADER_DATA 0x0018
    177 #define SIGNED_TOPAZ_VLC_CR_HEADER_DATA 0
    178 
    179 /* Register CR_VLC_HEADER_CTRL */
    180 #define TOPAZ_VLC_CR_VLC_HEADER_CTRL 0x001C
    181 #define MASK_TOPAZ_VLC_CR_HEADER_PREFIX 0x7FFFFFFF
    182 #define SHIFT_TOPAZ_VLC_CR_HEADER_PREFIX 0
    183 #define REGNUM_TOPAZ_VLC_CR_HEADER_PREFIX 0x001C
    184 #define SIGNED_TOPAZ_VLC_CR_HEADER_PREFIX 0
    185 
    186 #define MASK_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 0x80000000
    187 #define SHIFT_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 31
    188 #define REGNUM_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 0x001C
    189 #define SIGNED_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 0
    190 
    191 /* Register CR_VLC_HEADER_STATUS */
    192 #define TOPAZ_VLC_CR_VLC_HEADER_STATUS 0x0020
    193 #define MASK_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0x00000001
    194 #define SHIFT_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0
    195 #define REGNUM_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0x0020
    196 #define SIGNED_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0
    197 
    198 /* Register CR_VLC_RATE_CTRL_MB_TYPE */
    199 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MB_TYPE 0x0024
    200 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0x000000FF
    201 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0
    202 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0x0024
    203 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0
    204 
    205 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_I 0x0000FF00
    206 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_I 8
    207 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_I 0x0024
    208 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_I 0
    209 
    210 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_B 0x00FF0000
    211 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_B 16
    212 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_B 0x0024
    213 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_B 0
    214 
    215 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 0xFF000000
    216 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 24
    217 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 0x0024
    218 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 0
    219 
    220 /* Register CR_VLC_RATE_CTRL_DCBITS */
    221 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_DCBITS 0x0028
    222 #define MASK_TOPAZ_VLC_CR_DC_BITS   0x0000FFFF
    223 #define SHIFT_TOPAZ_VLC_CR_DC_BITS  0
    224 #define REGNUM_TOPAZ_VLC_CR_DC_BITS 0x0028
    225 #define SIGNED_TOPAZ_VLC_CR_DC_BITS 0
    226 
    227 #define MASK_TOPAZ_VLC_CR_MB_CODING_IPCM 0xFF000000
    228 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_IPCM 24
    229 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_IPCM 0x0028
    230 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_IPCM 0
    231 
    232 /* Register CR_VLC_RATE_CTRL_MVBITS */
    233 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MVBITS 0x002C
    234 #define MASK_TOPAZ_VLC_CR_MV_BITS   0x00FFFFFF
    235 #define SHIFT_TOPAZ_VLC_CR_MV_BITS  0
    236 #define REGNUM_TOPAZ_VLC_CR_MV_BITS 0x002C
    237 #define SIGNED_TOPAZ_VLC_CR_MV_BITS 0
    238 
    239 /* Register CR_VLC_RATE_CTRL_MBSYM */
    240 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MBSYM 0x0030
    241 #define MASK_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0x00FFFFFF
    242 #define SHIFT_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0
    243 #define REGNUM_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0x0030
    244 #define SIGNED_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0
    245 
    246 /* Register CR_VLC_RATE_CTRL_MBRES */
    247 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MBRES 0x0034
    248 #define MASK_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0x00FFFFFF
    249 #define SHIFT_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0
    250 #define REGNUM_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0x0034
    251 #define SIGNED_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0
    252 
    253 /* Register CR_VLC_SIGNATURE_0 */
    254 #define TOPAZ_VLC_CR_VLC_SIGNATURE_0 0x0038
    255 #define MASK_TOPAZ_VLC_CR_MB_SIGNATURE 0xFFFFFFFF
    256 #define SHIFT_TOPAZ_VLC_CR_MB_SIGNATURE 0
    257 #define REGNUM_TOPAZ_VLC_CR_MB_SIGNATURE 0x0038
    258 #define SIGNED_TOPAZ_VLC_CR_MB_SIGNATURE 0
    259 
    260 /* Register CR_VLC_SIGNATURE_1 */
    261 #define TOPAZ_VLC_CR_VLC_SIGNATURE_1 0x003C
    262 #define MASK_TOPAZ_VLC_CR_BLK_SIGNATURE 0xFFFFFFFF
    263 #define SHIFT_TOPAZ_VLC_CR_BLK_SIGNATURE 0
    264 #define REGNUM_TOPAZ_VLC_CR_BLK_SIGNATURE 0x003C
    265 #define SIGNED_TOPAZ_VLC_CR_BLK_SIGNATURE 0
    266 
    267 /* Register CR_VLC_SIGNATURE_2 */
    268 #define TOPAZ_VLC_CR_VLC_SIGNATURE_2 0x0040
    269 #define MASK_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0xFFFFFFFF
    270 #define SHIFT_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0
    271 #define REGNUM_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0x0040
    272 #define SIGNED_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0
    273 
    274 /* Register CR_VLC_SIGNATURE_3 */
    275 #define TOPAZ_VLC_CR_VLC_SIGNATURE_3 0x0044
    276 #define MASK_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0xFFFFFFFF
    277 #define SHIFT_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0
    278 #define REGNUM_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0x0044
    279 #define SIGNED_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0
    280 
    281 /* Register CR_VLC_SIGNATURE_4 */
    282 #define TOPAZ_VLC_CR_VLC_SIGNATURE_4 0x0048
    283 #define MASK_TOPAZ_VLC_CR_HEADER_SIGNATURE 0xFFFFFFFF
    284 #define SHIFT_TOPAZ_VLC_CR_HEADER_SIGNATURE 0
    285 #define REGNUM_TOPAZ_VLC_CR_HEADER_SIGNATURE 0x0048
    286 #define SIGNED_TOPAZ_VLC_CR_HEADER_SIGNATURE 0
    287 
    288 /* Register CR_VLC_PERFORMANCE_0 */
    289 #define TOPAZ_VLC_CR_VLC_PERFORMANCE_0 0x0050
    290 #define MASK_TOPAZ_VLC_CR_WORST_MB_CYCLES 0x0000FFFF
    291 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_CYCLES 0
    292 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_CYCLES 0x0050
    293 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_CYCLES 0
    294 
    295 #define MASK_TOPAZ_VLC_CR_WORST_MB_TYPE 0x00030000
    296 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_TYPE 16
    297 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_TYPE 0x0050
    298 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_TYPE 0
    299 
    300 #define MASK_TOPAZ_VLC_CR_WORST_MB_IPCM 0x00040000
    301 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_IPCM 18
    302 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_IPCM 0x0050
    303 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_IPCM 0
    304 
    305 /* Register CR_VLC_PERFORMANCE_1 */
    306 #define TOPAZ_VLC_CR_VLC_PERFORMANCE_1 0x0054
    307 #define MASK_TOPAZ_VLC_CR_WORST_MB_NUM 0x003FFFFF
    308 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_NUM 0
    309 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_NUM 0x0054
    310 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_NUM 0
    311 
    312 /* Register CR_VLC_PERFORMANCE_2 */
    313 #define TOPAZ_VLC_CR_VLC_PERFORMANCE_2 0x0058
    314 #define MASK_TOPAZ_VLC_CR_WORST_MB_RESET 0x00000001
    315 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_RESET 0
    316 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_RESET 0x0058
    317 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_RESET 0
    318 
    319 #define MASK_TOPAZ_VLC_CR_DISABLE_COUNTERS 0x00000002
    320 #define SHIFT_TOPAZ_VLC_CR_DISABLE_COUNTERS 1
    321 #define REGNUM_TOPAZ_VLC_CR_DISABLE_COUNTERS 0x0058
    322 #define SIGNED_TOPAZ_VLC_CR_DISABLE_COUNTERS 0
    323 
    324 /* Register CR_VLC_IPCM_0 */
    325 #define TOPAZ_VLC_CR_VLC_IPCM_0     0x005C
    326 #define MASK_TOPAZ_VLC_CR_CABAC_DB_MARGIN 0x03FF0000
    327 #define SHIFT_TOPAZ_VLC_CR_CABAC_DB_MARGIN 16
    328 #define REGNUM_TOPAZ_VLC_CR_CABAC_DB_MARGIN 0x005C
    329 #define SIGNED_TOPAZ_VLC_CR_CABAC_DB_MARGIN 0
    330 
    331 #define MASK_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0x00001FFF
    332 #define SHIFT_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0
    333 #define REGNUM_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0x005C
    334 #define SIGNED_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0
    335 
    336 /* Register CR_VLC_IPCM_1 */
    337 #define TOPAZ_VLC_CR_VLC_IPCM_1     0x0060
    338 #define MASK_TOPAZ_VLC_CR_IPCM_THRESHOLD 0x00000FFF
    339 #define SHIFT_TOPAZ_VLC_CR_IPCM_THRESHOLD 0
    340 #define REGNUM_TOPAZ_VLC_CR_IPCM_THRESHOLD 0x0060
    341 #define SIGNED_TOPAZ_VLC_CR_IPCM_THRESHOLD 0
    342 
    343 #define MASK_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 0x1FFF0000
    344 #define SHIFT_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 16
    345 #define REGNUM_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 0x0060
    346 #define SIGNED_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 0
    347 
    348 /* Register CR_VLC_MPEG4_CFG */
    349 #define TOPAZ_VLC_CR_VLC_MPEG4_CFG  0x0064
    350 #define MASK_TOPAZ_VLC_CR_RSIZE     0x00000007
    351 #define SHIFT_TOPAZ_VLC_CR_RSIZE    0
    352 #define REGNUM_TOPAZ_VLC_CR_RSIZE   0x0064
    353 #define SIGNED_TOPAZ_VLC_CR_RSIZE   0
    354 
    355 /* Register CR_VLC_MB_PARAMS */
    356 #define TOPAZ_VLC_CR_VLC_MB_PARAMS  0x0068
    357 #define MASK_TOPAZ_VLC_CR_QP        0x0000003F
    358 #define SHIFT_TOPAZ_VLC_CR_QP       0
    359 #define REGNUM_TOPAZ_VLC_CR_QP      0x0068
    360 #define SIGNED_TOPAZ_VLC_CR_QP      0
    361 
    362 #define MASK_TOPAZ_VLC_CR_QP_CB     0x003F0000
    363 #define SHIFT_TOPAZ_VLC_CR_QP_CB    16
    364 #define REGNUM_TOPAZ_VLC_CR_QP_CB   0x0068
    365 #define SIGNED_TOPAZ_VLC_CR_QP_CB   0
    366 
    367 #define MASK_TOPAZ_VLC_CR_QP_CR     0x3F000000
    368 #define SHIFT_TOPAZ_VLC_CR_QP_CR    24
    369 #define REGNUM_TOPAZ_VLC_CR_QP_CR   0x0068
    370 #define SIGNED_TOPAZ_VLC_CR_QP_CR   0
    371 
    372 /* Register CR_VLC_RESET */
    373 #define TOPAZ_VLC_CR_VLC_RESET      0x006C
    374 #define MASK_TOPAZ_VLC_CR_RESET     0x00000001
    375 #define SHIFT_TOPAZ_VLC_CR_RESET    0
    376 #define REGNUM_TOPAZ_VLC_CR_RESET   0x006C
    377 #define SIGNED_TOPAZ_VLC_CR_RESET   0
    378 
    379 /* Register CR_VLC_WRITE_ADDR */
    380 #define TOPAZ_VLC_CR_VLC_WRITE_ADDR 0x0070
    381 #define MASK_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 0xFFFFFFF0
    382 #define SHIFT_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 4
    383 #define REGNUM_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 0x0070
    384 #define SIGNED_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 0
    385 
    386 /* Register CR_VLC_CHROMA_QP_OFFSET */
    387 #define TOPAZ_VLC_CR_VLC_CHROMA_QP_OFFSET 0x0074
    388 #define MASK_TOPAZ_VLC_CR_QPCB_OFFSET 0x0000001F
    389 #define SHIFT_TOPAZ_VLC_CR_QPCB_OFFSET 0
    390 #define REGNUM_TOPAZ_VLC_CR_QPCB_OFFSET 0x0074
    391 #define SIGNED_TOPAZ_VLC_CR_QPCB_OFFSET 0
    392 
    393 #define MASK_TOPAZ_VLC_CR_QPCR_OFFSET 0x00001F00
    394 #define SHIFT_TOPAZ_VLC_CR_QPCR_OFFSET 8
    395 #define REGNUM_TOPAZ_VLC_CR_QPCR_OFFSET 0x0074
    396 #define SIGNED_TOPAZ_VLC_CR_QPCR_OFFSET 0
    397 
    398 /* Register CR_VLC_RATE_CTRL_QP */
    399 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_QP 0x0078
    400 #define MASK_TOPAZ_VLC_CR_BU_QPY_INTRA 0x00003FFF
    401 #define SHIFT_TOPAZ_VLC_CR_BU_QPY_INTRA 0
    402 #define REGNUM_TOPAZ_VLC_CR_BU_QPY_INTRA 0x0078
    403 #define SIGNED_TOPAZ_VLC_CR_BU_QPY_INTRA 0
    404 
    405 #define MASK_TOPAZ_VLC_CR_BU_QPY_INTER 0x3FFF0000
    406 #define SHIFT_TOPAZ_VLC_CR_BU_QPY_INTER 16
    407 #define REGNUM_TOPAZ_VLC_CR_BU_QPY_INTER 0x0078
    408 #define SIGNED_TOPAZ_VLC_CR_BU_QPY_INTER 0
    409 
    410 /* Register CR_VLC_BU_STAT_UPDATE */
    411 #define TOPAZ_VLC_CR_VLC_BU_STAT_UPDATE 0x007C
    412 #define MASK_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0x00000001
    413 #define SHIFT_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0
    414 #define REGNUM_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0x007C
    415 #define SIGNED_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0
    416 
    417 /* Register CR_VLC_SLICE_HEADER_CTRL */
    418 #define TOPAZ_VLC_CR_VLC_SLICE_HEADER_CTRL 0x0080
    419 #define MASK_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0x0000001F
    420 #define SHIFT_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0
    421 #define REGNUM_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0x0080
    422 #define SIGNED_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0
    423 
    424 #define MASK_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 0x00001F00
    425 #define SHIFT_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 8
    426 #define REGNUM_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 0x0080
    427 #define SIGNED_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 0
    428 
    429 #define MASK_TOPAZ_VLC_CR_SLICE_MB_NUM 0x3FFF0000
    430 #define SHIFT_TOPAZ_VLC_CR_SLICE_MB_NUM 16
    431 #define REGNUM_TOPAZ_VLC_CR_SLICE_MB_NUM 0x0080
    432 #define SIGNED_TOPAZ_VLC_CR_SLICE_MB_NUM 0
    433 
    434 /* Register CR_VLC_SLICE_CTRL_0 */
    435 #define TOPAZ_VLC_CR_VLC_SLICE_CTRL_0 0x0084
    436 #define MASK_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0x00FFFFFF
    437 #define SHIFT_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0
    438 #define REGNUM_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0x0084
    439 #define SIGNED_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0
    440 
    441 /* Register CR_VLC_SLICE_CTRL_1 */
    442 #define TOPAZ_VLC_CR_VLC_SLICE_CTRL_1 0x008C
    443 #define MASK_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0x00003FFF
    444 #define SHIFT_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0
    445 #define REGNUM_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0x008C
    446 #define SIGNED_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0
    447 
    448 /* Register CR_VLC_RATE_CTRL_HEADERS */
    449 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_HEADERS 0x0090
    450 #define MASK_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0x00FFFFFF
    451 #define SHIFT_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0
    452 #define REGNUM_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0x0090
    453 #define SIGNED_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0
    454 
    455 /* Register CR_VLC_SIGNATURE_5 */
    456 #define TOPAZ_VLC_CR_VLC_SIGNATURE_5 0x0094
    457 #define MASK_TOPAZ_VLC_CR_CABAC_SIGNATURE 0xFFFFFFFF
    458 #define SHIFT_TOPAZ_VLC_CR_CABAC_SIGNATURE 0
    459 #define REGNUM_TOPAZ_VLC_CR_CABAC_SIGNATURE 0x0094
    460 #define SIGNED_TOPAZ_VLC_CR_CABAC_SIGNATURE 0
    461 
    462 /* Register CR_VLC_SIGNATURE_6 */
    463 #define TOPAZ_VLC_CR_VLC_SIGNATURE_6 0x0098
    464 #define MASK_TOPAZ_VLC_CR_IPCM_SIGNATURE 0xFFFFFFFF
    465 #define SHIFT_TOPAZ_VLC_CR_IPCM_SIGNATURE 0
    466 #define REGNUM_TOPAZ_VLC_CR_IPCM_SIGNATURE 0x0098
    467 #define SIGNED_TOPAZ_VLC_CR_IPCM_SIGNATURE 0
    468 
    469 /*
    470 	Byte range covering the group TOPAZ_VLC file
    471 */
    472 
    473 #define TOPAZ_VLC_TOPAZ_VLC_REGISTERS_START		0x00000000
    474 #define TOPAZ_VLC_TOPAZ_VLC_REGISTERS_END  		0x0000009B
    475 
    476 /*
    477 	Byte range covering the whole register file
    478 */
    479 
    480 #define TOPAZ_VLC_REGISTERS_START		0x00000000
    481 #define TOPAZ_VLC_REGISTERS_END  		0x0000009B
    482 #define TOPAZ_VLC_REG_DEFAULT_TABLE struct {\
    483 			IMG_UINT16 uRegOffset;\
    484 			IMG_UINT32 uRegDefault;\
    485 			IMG_UINT32 uRegMask;\
    486 			bool bReadonly;\
    487 			const char* pszName;\
    488 		} TOPAZ_VLC_Defaults[] = {\
    489 	{0x0000, 0x00000000, 0x1000FFFF, 0, "CR_VLC_CONTROL" } ,\
    490 	{0x0004, 0x00000000, 0x00000005, 1, "CR_VLC_STATUS" } ,\
    491 	{0x0008, 0x00000000, 0x0003E000, 1, "CR_VLC_INFO_0" } ,\
    492 	{0x000C, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_INFO_1" } ,\
    493 	{0x0010, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_INFO_2" } ,\
    494 	{0x0014, 0x00000000, 0x80003FFF, 0, "CR_VLC_STUFF_HEAD_CTRL" } ,\
    495 	{0x0018, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_HEADER_FIFO" } ,\
    496 	{0x001C, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_HEADER_CTRL" } ,\
    497 	{0x0020, 0x00000000, 0x00000001, 1, "CR_VLC_HEADER_STATUS" } ,\
    498 	{0x0024, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_RATE_CTRL_MB_TYPE" } ,\
    499 	{0x0028, 0x00000000, 0xFF00FFFF, 1, "CR_VLC_RATE_CTRL_DCBITS" } ,\
    500 	{0x002C, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_MVBITS" } ,\
    501 	{0x0030, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_MBSYM" } ,\
    502 	{0x0034, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_MBRES" } ,\
    503 	{0x0038, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_0" } ,\
    504 	{0x003C, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_1" } ,\
    505 	{0x0040, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_2" } ,\
    506 	{0x0044, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_3" } ,\
    507 	{0x0048, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_4" } ,\
    508 	{0x0050, 0x00000000, 0x0007FFFF, 0, "CR_VLC_PERFORMANCE_0" } ,\
    509 	{0x0054, 0x00000000, 0x003FFFFF, 0, "CR_VLC_PERFORMANCE_1" } ,\
    510 	{0x0058, 0x00000000, 0x00000003, 0, "CR_VLC_PERFORMANCE_2" } ,\
    511 	{0x005C, 0x01900000, 0x03FF1FFF, 0, "CR_VLC_IPCM_0" } ,\
    512 	{0x0060, 0x00000000, 0x1FFF0FFF, 0, "CR_VLC_IPCM_1" } ,\
    513 	{0x0064, 0x00000000, 0x00000007, 0, "CR_VLC_MPEG4_CFG" } ,\
    514 	{0x0068, 0x00000000, 0x3F3F003F, 1, "CR_VLC_MB_PARAMS" } ,\
    515 	{0x006C, 0x00000000, 0x00000001, 0, "CR_VLC_RESET" } ,\
    516 	{0x0070, 0x00000000, 0xFFFFFFF0, 0, "CR_VLC_WRITE_ADDR" } ,\
    517 	{0x0074, 0x00000000, 0x00001F1F, 0, "CR_VLC_CHROMA_QP_OFFSET" } ,\
    518 	{0x0078, 0x00000000, 0x3FFF3FFF, 1, "CR_VLC_RATE_CTRL_QP" } ,\
    519 	{0x007C, 0x00000000, 0x00000001, 0, "CR_VLC_BU_STAT_UPDATE" } ,\
    520 	{0x0080, 0x00000000, 0x3FFF1F1F, 0, "CR_VLC_SLICE_HEADER_CTRL" } ,\
    521 	{0x0084, 0x00000000, 0x00FFFFFF, 0, "CR_VLC_SLICE_CTRL_0" } ,\
    522 	{0x008C, 0x00000000, 0x00003FFF, 0, "CR_VLC_SLICE_CTRL_1" } ,\
    523 	{0x0090, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_HEADERS" } ,\
    524 	{0x0094, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_5" } ,\
    525 	{0x0098, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_6" } ,\
    526 { 0 }}
    527 
    528 #define TOPAZ_VLC_REGS_INIT(uBase) \
    529 	{ \
    530 		int n;\
    531 		TOPAZ_VLC_REG_DEFAULT_TABLE;\
    532 		for (n = 0; n < sizeof(TOPAZ_VLC_Defaults)/ sizeof(TOPAZ_VLC_Defaults[0] ) -1; n++)\
    533 		{\
    534 			RegWriteNoTrap(TOPAZ_VLC_Defaults[n].uRegOffset + uBase, TOPAZ_VLC_Defaults[n].uRegDefault); \
    535 		}\
    536 	}
    537 #endif
    538