cim_parm.h revision f29dbc25
1f29dbc25Smrg/* 2f29dbc25Smrg * Copyright (c) 2006 Advanced Micro Devices, Inc. 3f29dbc25Smrg * 4f29dbc25Smrg * Permission is hereby granted, free of charge, to any person obtaining a 5f29dbc25Smrg * copy of this software and associated documentation files (the "Software"), 6f29dbc25Smrg * to deal in the Software without restriction, including without limitation 7f29dbc25Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8f29dbc25Smrg * and/or sell copies of the Software, and to permit persons to whom the 9f29dbc25Smrg * Software is furnished to do so, subject to the following conditions: 10f29dbc25Smrg * 11f29dbc25Smrg * The above copyright notice and this permission notice shall be included in 12f29dbc25Smrg * all copies or substantial portions of the Software. 13f29dbc25Smrg * 14f29dbc25Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15f29dbc25Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16f29dbc25Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17f29dbc25Smrg * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18f29dbc25Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19f29dbc25Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20f29dbc25Smrg * DEALINGS IN THE SOFTWARE. 21f29dbc25Smrg * 22f29dbc25Smrg * Neither the name of the Advanced Micro Devices, Inc. nor the names of its 23f29dbc25Smrg * contributors may be used to endorse or promote products derived from this 24f29dbc25Smrg * software without specific prior written permission. 25f29dbc25Smrg */ 26f29dbc25Smrg 27f29dbc25Smrg /* 28f29dbc25Smrg * Cimarron user definitions. 29f29dbc25Smrg */ 30f29dbc25Smrg 31f29dbc25Smrg#ifndef _cim_parm_h 32f29dbc25Smrg#define _cim_parm_h 33f29dbc25Smrg 34f29dbc25Smrg/*===================================================*/ 35f29dbc25Smrg/* CIMARRON RETURN VALUE DEFINITIONS */ 36f29dbc25Smrg/*===================================================*/ 37f29dbc25Smrg 38f29dbc25Smrg#define CIM_STATUS_OK 0x00000000 39f29dbc25Smrg#define CIM_STATUS_ERROR 0x00000001 40f29dbc25Smrg#define CIM_STATUS_INVALIDPARAMS 0x00000002 41f29dbc25Smrg#define CIM_STATUS_DEVNOTFOUND 0x00000004 42f29dbc25Smrg#define CIM_STATUS_INVALIDSCALE 0x00000008 43f29dbc25Smrg#define CIM_STATUS_INEXACTMATCH 0x00000010 44f29dbc25Smrg#define CIM_STATUS_NOLOCK 0x00000020 45f29dbc25Smrg#define CIM_STATUS_CPUNOTFOUND 0x00000040 46f29dbc25Smrg#define CIM_STATUS_DISPLAYUNAVAILABLE 0x00000080 47f29dbc25Smrg#define CIM_STATUS_NOTFOUND 0x00000100 48f29dbc25Smrg 49f29dbc25Smrg/*===================================================*/ 50f29dbc25Smrg/* CIMARRON CPU DEFINITIONS */ 51f29dbc25Smrg/*===================================================*/ 52f29dbc25Smrg 53f29dbc25Smrg#define CIM_CPU_GEODEGX 0x00000001 54f29dbc25Smrg#define CIM_CPU_GEODELX 0x00000002 55f29dbc25Smrg 56f29dbc25Smrg#define CIM_SB_5535 0x00000001 57f29dbc25Smrg#define CIM_SB_5536 0x00000002 58f29dbc25Smrg 59f29dbc25Smrg/*===================================================*/ 60f29dbc25Smrg/* MSR PARAMETERS */ 61f29dbc25Smrg/*===================================================*/ 62f29dbc25Smrg 63f29dbc25Smrg/*-------------------------------------------------------------*/ 64f29dbc25Smrg/* GEODELINK DEVICE IDS */ 65f29dbc25Smrg/* These values uniquely identify all known GeodeLink devices */ 66f29dbc25Smrg/* in GeodeLX and its companion, 5535/6. For multiple devices */ 67f29dbc25Smrg/* of the same class (GLIU, USB, etc.) the table order is used */ 68f29dbc25Smrg/* to to identify the expected device order, in terms of on */ 69f29dbc25Smrg/* which GLIU the device is found, and on which port. */ 70f29dbc25Smrg/*-------------------------------------------------------------*/ 71f29dbc25Smrg 72f29dbc25Smrg#define MSR_DEVICE_GEODELX_GLIU0 0x00 73f29dbc25Smrg#define MSR_DEVICE_GEODELX_GLIU1 0x01 74f29dbc25Smrg#define MSR_DEVICE_5535_GLIU 0x02 75f29dbc25Smrg#define MSR_DEVICE_GEODELX_GLCP 0x03 76f29dbc25Smrg#define MSR_DEVICE_5535_GLCP 0x04 77f29dbc25Smrg#define MSR_DEVICE_GEODELX_MPCI 0x05 78f29dbc25Smrg#define MSR_DEVICE_5535_MPCI 0x06 79f29dbc25Smrg#define MSR_DEVICE_GEODELX_MC 0x07 80f29dbc25Smrg#define MSR_DEVICE_GEODELX_GP 0x08 81f29dbc25Smrg#define MSR_DEVICE_GEODELX_VG 0x09 82f29dbc25Smrg#define MSR_DEVICE_GEODELX_VIP 0x0A 83f29dbc25Smrg#define MSR_DEVICE_GEODELX_AES 0x0B 84f29dbc25Smrg#define MSR_DEVICE_GEODELX_DF 0x0C 85f29dbc25Smrg#define MSR_DEVICE_GEODELX_FG 0x0D 86f29dbc25Smrg#define MSR_DEVICE_GEODELX_VAIL 0x0E 87f29dbc25Smrg#define MSR_DEVICE_5536_USB_2_0 0x0F 88f29dbc25Smrg#define MSR_DEVICE_5535_USB2 0x10 89f29dbc25Smrg#define MSR_DEVICE_5535_USB1 0x11 90f29dbc25Smrg#define MSR_DEVICE_5535_ATAC 0x12 91f29dbc25Smrg#define MSR_DEVICE_5535_MDD 0x13 92f29dbc25Smrg#define MSR_DEVICE_5535_ACC 0x14 93f29dbc25Smrg#define MSR_DEVICE_EMPTY 0x15 94f29dbc25Smrg#define MSR_DEVICE_REFLECTIVE 0x16 95f29dbc25Smrg#define MSR_DEVICE_PRESENT 0x17 96f29dbc25Smrg#define MSR_DEVICE_NOTFOUND 0x18 97f29dbc25Smrg 98f29dbc25Smrg/*---------------------------------------------*/ 99f29dbc25Smrg/* GEODELINK TABLE ENTRY */ 100f29dbc25Smrg/* The following structure represents one port */ 101f29dbc25Smrg/* on a GeodeLink Interface Unit (GLIU) */ 102f29dbc25Smrg/*---------------------------------------------*/ 103f29dbc25Smrg 104f29dbc25Smrgtypedef struct tagGeodeLinkNode 105f29dbc25Smrg{ 106f29dbc25Smrg unsigned long address_from_cpu; 107f29dbc25Smrg unsigned long device_id; 108f29dbc25Smrg 109f29dbc25Smrg} GEODELINK_NODE; 110f29dbc25Smrg 111f29dbc25Smrg/*---------------------------------------------*/ 112f29dbc25Smrg/* QWORD DATA STRUCTURE */ 113f29dbc25Smrg/* 64-bit data structure for MSR acess. */ 114f29dbc25Smrg/*---------------------------------------------*/ 115f29dbc25Smrg 116f29dbc25Smrgtypedef struct tagQ_WORD 117f29dbc25Smrg{ 118f29dbc25Smrg unsigned long high; 119f29dbc25Smrg unsigned long low; 120f29dbc25Smrg 121f29dbc25Smrg} Q_WORD; 122f29dbc25Smrg 123f29dbc25Smrg/*===================================================*/ 124f29dbc25Smrg/* INITIALIZATION USER PARAMETERS */ 125f29dbc25Smrg/*===================================================*/ 126f29dbc25Smrg 127f29dbc25Smrgtypedef struct tagInitBaseAddresses 128f29dbc25Smrg{ 129f29dbc25Smrg unsigned long framebuffer_base; 130f29dbc25Smrg unsigned long gp_register_base; 131f29dbc25Smrg unsigned long vg_register_base; 132f29dbc25Smrg unsigned long df_register_base; 133f29dbc25Smrg unsigned long vip_register_base; 134f29dbc25Smrg unsigned long framebuffer_size; 135f29dbc25Smrg 136f29dbc25Smrg} INIT_BASE_ADDRESSES; 137f29dbc25Smrg 138f29dbc25Smrg/*===================================================*/ 139f29dbc25Smrg/* GP USER PARAMETER DEFINITIONS */ 140f29dbc25Smrg/*===================================================*/ 141f29dbc25Smrg 142f29dbc25Smrg/*---------------------------*/ 143f29dbc25Smrg/* GP_DECLARE_BLT PARAMETERS */ 144f29dbc25Smrg/*---------------------------*/ 145f29dbc25Smrg 146f29dbc25Smrg#define CIMGP_BLTFLAGS_PRES_LUT 0x0001 147f29dbc25Smrg#define CIMGP_BLTFLAGS_PRES_COLOR_PAT 0x0002 148f29dbc25Smrg#define CIMGP_ENABLE_PREFETCH 0x0004 149f29dbc25Smrg#define CIMGP_BLTFLAGS_HAZARD 0x0008 150f29dbc25Smrg#define CIMGP_BLTFLAGS_INVERTMONO 0x0010 151f29dbc25Smrg#define CIMGP_BLTFLAGS_LIMITBUFFER 0x0020 152f29dbc25Smrg 153f29dbc25Smrg/*-----------------------------------*/ 154f29dbc25Smrg/* GP_SET_ALPHA_OPERATION PARAMETERS */ 155f29dbc25Smrg/*-----------------------------------*/ 156f29dbc25Smrg 157f29dbc25Smrg#define CIMGP_APPLY_BLEND_TO_RGB 1 158f29dbc25Smrg#define CIMGP_APPLY_BLEND_TO_ALPHA 2 159f29dbc25Smrg#define CIMGP_APPLY_BLEND_TO_ALL 3 160f29dbc25Smrg 161f29dbc25Smrg#define CIMGP_ALPHA_TIMES_A 0 162f29dbc25Smrg#define CIMGP_BETA_TIMES_B 1 163f29dbc25Smrg#define CIMGP_A_PLUS_BETA_B 2 164f29dbc25Smrg#define CIMGP_ALPHA_A_PLUS_BETA_B 3 165f29dbc25Smrg 166f29dbc25Smrg#define CIMGP_CHANNEL_A_ALPHA 0 167f29dbc25Smrg#define CIMGP_CHANNEL_B_ALPHA 1 168f29dbc25Smrg#define CIMGP_CONSTANT_ALPHA 2 169f29dbc25Smrg#define CIMGP_ALPHA_EQUALS_ONE 3 170f29dbc25Smrg#define CIMGP_ALPHA_FROM_RGB_A 4 171f29dbc25Smrg#define CIMGP_ALPHA_FROM_RGB_B 5 172f29dbc25Smrg#define CIMGP_CONVERTED_ALPHA 6 173f29dbc25Smrg 174f29dbc25Smrg#define CIMGP_CHANNEL_A_SOURCE 0 175f29dbc25Smrg#define CIMGP_CHANNEL_A_DEST 1 176f29dbc25Smrg 177f29dbc25Smrg/*---------------------------------*/ 178f29dbc25Smrg/* GP_SET_SOURCE_FORMAT PARAMETERS */ 179f29dbc25Smrg/*---------------------------------*/ 180f29dbc25Smrg 181f29dbc25Smrg#define CIMGP_SOURCE_FMT_3_3_2 0x00 182f29dbc25Smrg#define CIMGP_SOURCE_FMT_8BPP_INDEXED 0x01 183f29dbc25Smrg#define CIMGP_SOURCE_FMT_4_4_4_4 0x04 184f29dbc25Smrg#define CIMGP_SOURCE_FMT_12BPP_BGR 0x14 185f29dbc25Smrg#define CIMGP_SOURCE_FMT_1_5_5_5 0x05 186f29dbc25Smrg#define CIMGP_SOURCE_FMT_15BPP_BGR 0x15 187f29dbc25Smrg#define CIMGP_SOURCE_FMT_0_5_6_5 0x06 188f29dbc25Smrg#define CIMGP_SOURCE_FMT_16BPP_BGR 0x16 189f29dbc25Smrg#define CIMGP_SOURCE_FMT_YUYV 0x07 190f29dbc25Smrg#define CIMGP_SOURCE_FMT_UYVY 0x17 191f29dbc25Smrg#define CIMGP_SOURCE_FMT_8_8_8_8 0x08 192f29dbc25Smrg#define CIMGP_SOURCE_FMT_32BPP_BGR 0x18 193f29dbc25Smrg#define CIMGP_SOURCE_FMT_24BPP 0x0B 194f29dbc25Smrg#define CIMGP_SOURCE_FMT_4BPP_INDEXED 0x0D 195f29dbc25Smrg 196f29dbc25Smrg/*------------------------------------*/ 197f29dbc25Smrg/* GP_SCREEN_TO_SCREEN_BLT PARAMETERS */ 198f29dbc25Smrg/*------------------------------------*/ 199f29dbc25Smrg 200f29dbc25Smrg#define CIMGP_NEGXDIR 1 201f29dbc25Smrg#define CIMGP_NEGYDIR 2 202f29dbc25Smrg 203f29dbc25Smrg/*------------------------------------*/ 204f29dbc25Smrg/* GP_BRESENHAM_LINE PARAMETERS */ 205f29dbc25Smrg/*------------------------------------*/ 206f29dbc25Smrg 207f29dbc25Smrg#define CIMGP_YMAJOR 1 208f29dbc25Smrg#define CIMGP_POSMAJOR 2 209f29dbc25Smrg#define CIMGP_POSMINOR 4 210f29dbc25Smrg 211f29dbc25Smrg/*----------------------------------------------*/ 212f29dbc25Smrg/* USER STRUCTURE FOR SAVING/RESTORING GP STATE */ 213f29dbc25Smrg/*----------------------------------------------*/ 214f29dbc25Smrg 215f29dbc25Smrgtypedef struct tagGPSaveRestore 216f29dbc25Smrg{ 217f29dbc25Smrg unsigned long base_offset; 218f29dbc25Smrg unsigned long cmd_top; 219f29dbc25Smrg unsigned long cmd_bottom; 220f29dbc25Smrg unsigned long cmd_base; 221f29dbc25Smrg unsigned long cmd_read; 222f29dbc25Smrg 223f29dbc25Smrg} GP_SAVE_RESTORE; 224f29dbc25Smrg 225f29dbc25Smrg/*===================================================*/ 226f29dbc25Smrg/* VG USER PARAMETER DEFINITIONS */ 227f29dbc25Smrg/*===================================================*/ 228f29dbc25Smrg 229f29dbc25Smrg/*-------------------------------------------*/ 230f29dbc25Smrg/* SUPPORTED TV ENCODERS */ 231f29dbc25Smrg/*-------------------------------------------*/ 232f29dbc25Smrg 233f29dbc25Smrg#define VG_ENCODER_ADV7171 0x0001 234f29dbc25Smrg#define VG_ENCODER_SAA7127 0x0002 235f29dbc25Smrg#define VG_ENCODER_FS454 0x0003 236f29dbc25Smrg#define VG_ENCODER_ADV7300 0x0004 237f29dbc25Smrg 238f29dbc25Smrg/*-------------------------------------------*/ 239f29dbc25Smrg/* SUPPORTED TV RESOLUTIONS */ 240f29dbc25Smrg/*-------------------------------------------*/ 241f29dbc25Smrg 242f29dbc25Smrg#define VG_TVMODE_NTSC 0x00000000 243f29dbc25Smrg#define VG_TVMODE_PAL 0x00000001 244f29dbc25Smrg#define VG_TVMODE_480P 0x00000002 245f29dbc25Smrg#define VG_TVMODE_720P 0x00000003 246f29dbc25Smrg#define VG_TVMODE_1080I 0x00000004 247f29dbc25Smrg#define VG_TVMODE_6X4_NTSC 0x00000005 248f29dbc25Smrg#define VG_TVMODE_8X6_NTSC 0x00000006 249f29dbc25Smrg#define VG_TVMODE_10X7_NTSC 0x00000007 250f29dbc25Smrg#define VG_TVMODE_6X4_PAL 0x00000008 251f29dbc25Smrg#define VG_TVMODE_8X6_PAL 0x00000009 252f29dbc25Smrg#define VG_TVMODE_10X7_PAL 0x0000000A 253f29dbc25Smrg 254f29dbc25Smrg/*-------------------------------------------*/ 255f29dbc25Smrg/* USER STRUCTURE FOR SETTING A DISPLAY MODE */ 256f29dbc25Smrg/*-------------------------------------------*/ 257f29dbc25Smrg 258f29dbc25Smrg#define VG_SUPPORTFLAG_8BPP 0x00000001 259f29dbc25Smrg#define VG_SUPPORTFLAG_12BPP 0x00000002 260f29dbc25Smrg#define VG_SUPPORTFLAG_15BPP 0x00000004 261f29dbc25Smrg#define VG_SUPPORTFLAG_16BPP 0x00000008 262f29dbc25Smrg#define VG_SUPPORTFLAG_24BPP 0x00000010 263f29dbc25Smrg#define VG_SUPPORTFLAG_32BPP 0x00000020 264f29dbc25Smrg#define VG_SUPPORTFLAG_56HZ 0x00000040 265f29dbc25Smrg#define VG_SUPPORTFLAG_60HZ 0x00000080 266f29dbc25Smrg#define VG_SUPPORTFLAG_70HZ 0x00000100 267f29dbc25Smrg#define VG_SUPPORTFLAG_72HZ 0x00000200 268f29dbc25Smrg#define VG_SUPPORTFLAG_75HZ 0x00000400 269f29dbc25Smrg#define VG_SUPPORTFLAG_85HZ 0x00000800 270f29dbc25Smrg#define VG_SUPPORTFLAG_90HZ 0x00001000 271f29dbc25Smrg#define VG_SUPPORTFLAG_100HZ 0x00002000 272f29dbc25Smrg#define VG_SUPPORTFLAG_HZMASK 0x00003FC0 273f29dbc25Smrg#define VG_SUPPORTFLAG_ADV7171 0x00004000 274f29dbc25Smrg#define VG_SUPPORTFLAG_SAA7127 0x00008000 275f29dbc25Smrg#define VG_SUPPORTFLAG_FS454 0x00010000 276f29dbc25Smrg#define VG_SUPPORTFLAG_ADV7300 0x00020000 277f29dbc25Smrg#define VG_SUPPORTFLAG_ENCODERMASK 0x0003C000 278f29dbc25Smrg#define VG_SUPPORTFLAG_PANEL 0x00040000 279f29dbc25Smrg#define VG_SUPPORTFLAG_TVOUT 0x00080000 280f29dbc25Smrg#define VG_SUPPORTFLAG_NTSC 0x00000000 281f29dbc25Smrg#define VG_SUPPORTFLAG_PAL 0x00100000 282f29dbc25Smrg#define VG_SUPPORTFLAG_480P 0x00200000 283f29dbc25Smrg#define VG_SUPPORTFLAG_720P 0x00300000 284f29dbc25Smrg#define VG_SUPPORTFLAG_1080I 0x00400000 285f29dbc25Smrg#define VG_SUPPORTFLAG_6X4_NTSC 0x00500000 286f29dbc25Smrg#define VG_SUPPORTFLAG_8X6_NTSC 0x00600000 287f29dbc25Smrg#define VG_SUPPORTFLAG_10X7_NTSC 0x00700000 288f29dbc25Smrg#define VG_SUPPORTFLAG_6X4_PAL 0x00800000 289f29dbc25Smrg#define VG_SUPPORTFLAG_8X6_PAL 0x00900000 290f29dbc25Smrg#define VG_SUPPORTFLAG_10X7_PAL 0x00A00000 291f29dbc25Smrg#define VG_SUPPORTFLAG_TVMODEMASK 0x00F00000 292f29dbc25Smrg 293f29dbc25Smrg#define VG_MODEFLAG_NEG_HSYNC 0x00000001 294f29dbc25Smrg#define VG_MODEFLAG_NEG_VSYNC 0x00000002 295f29dbc25Smrg#define VG_MODEFLAG_INTERLACED 0x00000004 296f29dbc25Smrg#define VG_MODEFLAG_PANELOUT 0x00000008 297f29dbc25Smrg#define VG_MODEFLAG_CENTERED 0x00000010 298f29dbc25Smrg#define VG_MODEFLAG_LINEARPITCH 0x00000020 299f29dbc25Smrg#define VG_MODEFLAG_TVOUT 0x00000040 300f29dbc25Smrg#define VG_MODEFLAG_HALFCLOCK 0x00000080 301f29dbc25Smrg#define VG_MODEFLAG_QVGA 0x00000100 302f29dbc25Smrg#define VG_MODEFLAG_EXCLUDEPLL 0x00000200 303f29dbc25Smrg#define VG_MODEFLAG_NOPANELTIMINGS 0x00000400 304f29dbc25Smrg#define VG_MODEFLAG_XVGA_TFT 0x00000800 305f29dbc25Smrg#define VG_MODEFLAG_CUSTOM_PANEL 0x00001000 306f29dbc25Smrg#define VG_MODEFLAG_CRT_AND_FP 0x00002000 307f29dbc25Smrg#define VG_MODEFLAG_LOW_BAND 0x00000000 308f29dbc25Smrg#define VG_MODEFLAG_AVG_BAND 0x00004000 309f29dbc25Smrg#define VG_MODEFLAG_HIGH_BAND 0x00008000 310f29dbc25Smrg#define VG_MODEFLAG_LEGACY_BAND 0x0000C000 311f29dbc25Smrg#define VG_MODEFLAG_BANDWIDTHMASK 0x0000C000 312f29dbc25Smrg#define VG_MODEFLAG_OVERRIDE_BAND 0x00010000 313f29dbc25Smrg#define VG_MODEFLAG_INT_ADDRESS 0x00000000 314f29dbc25Smrg#define VG_MODEFLAG_INT_LINEDOUBLE 0x00020000 315f29dbc25Smrg#define VG_MODEFLAG_INT_FLICKER 0x00040000 316f29dbc25Smrg#define VG_MODEFLAG_INT_MASK 0x00060000 317f29dbc25Smrg#define VG_MODEFLAG_INT_OVERRIDE 0x00080000 318f29dbc25Smrg#define VG_MODEFLAG_INVERT_SHFCLK 0x00100000 319f29dbc25Smrg#define VG_MODEFLAG_MANUAL_FREQUENCY 0x00200000 320f29dbc25Smrg#define VG_MODEFLAG_PLL_BYPASS 0x00400000 321f29dbc25Smrg#define VG_MODEFLAG_VIP_TO_DOT_CLOCK 0x00800000 322f29dbc25Smrg 323f29dbc25Smrg#define VG_MODEFLAG_VALIDUSERFLAGS (VG_MODEFLAG_CRT_AND_FP | \ 324f29dbc25Smrg VG_MODEFLAG_XVGA_TFT | \ 325f29dbc25Smrg VG_MODEFLAG_NOPANELTIMINGS | \ 326f29dbc25Smrg VG_MODEFLAG_EXCLUDEPLL | \ 327f29dbc25Smrg VG_MODEFLAG_LINEARPITCH) 328f29dbc25Smrg 329f29dbc25Smrgtypedef struct tagVGDisplayMode 330f29dbc25Smrg{ 331f29dbc25Smrg /* DISPLAY MODE FLAGS */ 332f29dbc25Smrg /* Includes BPP, refresh rate information, interlacing, etc. */ 333f29dbc25Smrg 334f29dbc25Smrg unsigned long internal_flags; 335f29dbc25Smrg unsigned long flags; 336f29dbc25Smrg 337f29dbc25Smrg /* SOURCE RESOLUTION */ 338f29dbc25Smrg /* The following values reflect the resolution of the data in the frame */ 339f29dbc25Smrg /* buffer. These values are used to enable scaling and filtering. */ 340f29dbc25Smrg 341f29dbc25Smrg unsigned long src_width; 342f29dbc25Smrg unsigned long src_height; 343f29dbc25Smrg 344f29dbc25Smrg /* PANEL SETTINGS 345f29dbc25Smrg * These allow a user to set a panel mode through the vg_set_custom_mode 346f29dbc25Smrg * routine. These values are only relevant if the VG_MODEFLAG_PANEL is 347f29dbc25Smrg * also set. 348f29dbc25Smrg */ 349f29dbc25Smrg 350f29dbc25Smrg unsigned long mode_width; 351f29dbc25Smrg unsigned long mode_height; 352f29dbc25Smrg unsigned long panel_width; 353f29dbc25Smrg unsigned long panel_height; 354f29dbc25Smrg unsigned long panel_tim1; 355f29dbc25Smrg unsigned long panel_tim2; 356f29dbc25Smrg unsigned long panel_dither_ctl; 357f29dbc25Smrg unsigned long panel_pad_sel_low; 358f29dbc25Smrg unsigned long panel_pad_sel_high; 359f29dbc25Smrg 360f29dbc25Smrg /* OUTPUT TIMINGS */ 361f29dbc25Smrg /* If the active width and height do not match the source */ 362f29dbc25Smrg /* dimensions the graphics data will be scaled. */ 363f29dbc25Smrg 364f29dbc25Smrg unsigned long hactive; 365f29dbc25Smrg unsigned long hblankstart; 366f29dbc25Smrg unsigned long hsyncstart; 367f29dbc25Smrg unsigned long hsyncend; 368f29dbc25Smrg unsigned long hblankend; 369f29dbc25Smrg unsigned long htotal; 370f29dbc25Smrg 371f29dbc25Smrg unsigned long vactive; 372f29dbc25Smrg unsigned long vblankstart; 373f29dbc25Smrg unsigned long vsyncstart; 374f29dbc25Smrg unsigned long vsyncend; 375f29dbc25Smrg unsigned long vblankend; 376f29dbc25Smrg unsigned long vtotal; 377f29dbc25Smrg 378f29dbc25Smrg unsigned long vactive_even; 379f29dbc25Smrg unsigned long vblankstart_even; 380f29dbc25Smrg unsigned long vsyncstart_even; 381f29dbc25Smrg unsigned long vsyncend_even; 382f29dbc25Smrg unsigned long vblankend_even; 383f29dbc25Smrg unsigned long vtotal_even; 384f29dbc25Smrg 385f29dbc25Smrg /* CLOCK FREQUENCY */ 386f29dbc25Smrg 387f29dbc25Smrg unsigned long frequency; 388f29dbc25Smrg 389f29dbc25Smrg} VG_DISPLAY_MODE; 390f29dbc25Smrg 391f29dbc25Smrg/*-------------------------------------------*/ 392f29dbc25Smrg/* PLL FLAGS */ 393f29dbc25Smrg/*-------------------------------------------*/ 394f29dbc25Smrg 395f29dbc25Smrg#define VG_PLL_DIVIDE_BY_2 0x00000001 396f29dbc25Smrg#define VG_PLL_DIVIDE_BY_4 0x00000002 397f29dbc25Smrg#define VG_PLL_BYPASS 0x00000004 398f29dbc25Smrg#define VG_PLL_MANUAL 0x00000008 399f29dbc25Smrg#define VG_PLL_VIP_CLOCK 0x00000010 400f29dbc25Smrg 401f29dbc25Smrg/*-------------------------------------------*/ 402f29dbc25Smrg/* USER STRUCTURE FOR QUERYING DISPLAY MODES */ 403f29dbc25Smrg/*-------------------------------------------*/ 404f29dbc25Smrg 405f29dbc25Smrgtypedef struct tagQueryDisplayMode 406f29dbc25Smrg{ 407f29dbc25Smrg int interlaced; 408f29dbc25Smrg int halfclock; 409f29dbc25Smrg unsigned long active_width; 410f29dbc25Smrg unsigned long active_height; 411f29dbc25Smrg unsigned long panel_width; 412f29dbc25Smrg unsigned long panel_height; 413f29dbc25Smrg unsigned long total_width; 414f29dbc25Smrg unsigned long total_height; 415f29dbc25Smrg unsigned long bpp; 416f29dbc25Smrg unsigned long hz; 417f29dbc25Smrg unsigned long frequency; 418f29dbc25Smrg unsigned long query_flags; 419f29dbc25Smrg unsigned long encoder; 420f29dbc25Smrg unsigned long tvmode; 421f29dbc25Smrg 422f29dbc25Smrg} VG_QUERY_MODE; 423f29dbc25Smrg 424f29dbc25Smrg/*-------------------------------------------*/ 425f29dbc25Smrg/* USER STRUCTURE FOR QUERYING CURSOR DATA */ 426f29dbc25Smrg/*-------------------------------------------*/ 427f29dbc25Smrg 428f29dbc25Smrgtypedef struct tagCursorData 429f29dbc25Smrg{ 430f29dbc25Smrg int enable; 431f29dbc25Smrg int color_cursor; 432f29dbc25Smrg unsigned long cursor_offset; 433f29dbc25Smrg unsigned long cursor_x; 434f29dbc25Smrg unsigned long cursor_y; 435f29dbc25Smrg unsigned long clipx; 436f29dbc25Smrg unsigned long clipy; 437f29dbc25Smrg unsigned long mono_color0; 438f29dbc25Smrg unsigned long mono_color1; 439f29dbc25Smrg unsigned long flags; 440f29dbc25Smrg 441f29dbc25Smrg} VG_CURSOR_DATA; 442f29dbc25Smrg 443f29dbc25Smrg/*------------------------------------------------*/ 444f29dbc25Smrg/* VG INTERRUPT STATUS SOURCES */ 445f29dbc25Smrg/*------------------------------------------------*/ 446f29dbc25Smrg 447f29dbc25Smrg#define VG_INT_LINE_MATCH 0x00010000 448f29dbc25Smrg#define VG_INT_VSYNC_LOSS 0x00020000 449f29dbc25Smrg 450f29dbc25Smrg/*------------------------------------------------*/ 451f29dbc25Smrg/* USER STRUCTURE FOR SETTING COMPRESSION DATA */ 452f29dbc25Smrg/*------------------------------------------------*/ 453f29dbc25Smrg 454f29dbc25Smrgtypedef struct tagCompressionData 455f29dbc25Smrg{ 456f29dbc25Smrg unsigned long compression_offset; 457f29dbc25Smrg unsigned long pitch; 458f29dbc25Smrg unsigned long size; 459f29dbc25Smrg unsigned long flags; 460f29dbc25Smrg 461f29dbc25Smrg} VG_COMPRESSION_DATA; 462f29dbc25Smrg 463f29dbc25Smrg/*-------------------------------------------------*/ 464f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING LINE INTERRUPTS */ 465f29dbc25Smrg/*-------------------------------------------------*/ 466f29dbc25Smrg 467f29dbc25Smrgtypedef struct tagInterruptInfo 468f29dbc25Smrg{ 469f29dbc25Smrg unsigned long line; 470f29dbc25Smrg unsigned long flags; 471f29dbc25Smrg int enable; 472f29dbc25Smrg 473f29dbc25Smrg} VG_INTERRUPT_PARAMS; 474f29dbc25Smrg 475f29dbc25Smrg/*-------------------------------------------------*/ 476f29dbc25Smrg/* USER STRUCTURE FOR PANNING THE DESKTOP */ 477f29dbc25Smrg/*-------------------------------------------------*/ 478f29dbc25Smrg 479f29dbc25Smrgtypedef struct tagPanningInfo 480f29dbc25Smrg{ 481f29dbc25Smrg unsigned long start_x; 482f29dbc25Smrg unsigned long start_y; 483f29dbc25Smrg int start_updated; 484f29dbc25Smrg 485f29dbc25Smrg} VG_PANNING_COORDINATES; 486f29dbc25Smrg 487f29dbc25Smrg/*--------------------------------------------------*/ 488f29dbc25Smrg/* USER STRUCTURE FOR SAVING/RESTORING THE VG STATE */ 489f29dbc25Smrg/*--------------------------------------------------*/ 490f29dbc25Smrg 491f29dbc25Smrgtypedef struct tagVGSaveRestore 492f29dbc25Smrg{ 493f29dbc25Smrg /* VG REGISTERS */ 494f29dbc25Smrg 495f29dbc25Smrg unsigned long unlock; 496f29dbc25Smrg unsigned long gcfg; 497f29dbc25Smrg unsigned long dcfg; 498f29dbc25Smrg unsigned long arb_cfg; 499f29dbc25Smrg unsigned long fb_offset; 500f29dbc25Smrg unsigned long cb_offset; 501f29dbc25Smrg unsigned long cursor_offset; 502f29dbc25Smrg unsigned long video_y_offset; 503f29dbc25Smrg unsigned long video_u_offset; 504f29dbc25Smrg unsigned long video_v_offset; 505f29dbc25Smrg unsigned long dv_top; 506f29dbc25Smrg unsigned long line_size; 507f29dbc25Smrg unsigned long gfx_pitch; 508f29dbc25Smrg unsigned long video_yuv_pitch; 509f29dbc25Smrg unsigned long h_active; 510f29dbc25Smrg unsigned long h_blank; 511f29dbc25Smrg unsigned long h_sync; 512f29dbc25Smrg unsigned long v_active; 513f29dbc25Smrg unsigned long v_blank; 514f29dbc25Smrg unsigned long v_sync; 515f29dbc25Smrg unsigned long fb_active; 516f29dbc25Smrg unsigned long cursor_x; 517f29dbc25Smrg unsigned long cursor_y; 518f29dbc25Smrg unsigned long vid_ds_delta; 519f29dbc25Smrg unsigned long fb_base; 520f29dbc25Smrg unsigned long dv_ctl; 521f29dbc25Smrg unsigned long gfx_scale; 522f29dbc25Smrg unsigned long irq_ctl; 523f29dbc25Smrg unsigned long vbi_even_ctl; 524f29dbc25Smrg unsigned long vbi_odd_ctl; 525f29dbc25Smrg unsigned long vbi_hor_ctl; 526f29dbc25Smrg unsigned long vbi_odd_line_enable; 527f29dbc25Smrg unsigned long vbi_even_line_enable; 528f29dbc25Smrg unsigned long vbi_pitch; 529f29dbc25Smrg unsigned long color_key; 530f29dbc25Smrg unsigned long color_key_mask; 531f29dbc25Smrg unsigned long color_key_x; 532f29dbc25Smrg unsigned long color_key_y; 533f29dbc25Smrg unsigned long irq; 534f29dbc25Smrg unsigned long genlk_ctl; 535f29dbc25Smrg unsigned long vid_y_even_offset; 536f29dbc25Smrg unsigned long vid_u_even_offset; 537f29dbc25Smrg unsigned long vid_v_even_offset; 538f29dbc25Smrg unsigned long vactive_even; 539f29dbc25Smrg unsigned long vblank_even; 540f29dbc25Smrg unsigned long vsync_even; 541f29dbc25Smrg unsigned long h_coeff[512]; 542f29dbc25Smrg unsigned long v_coeff[256]; 543f29dbc25Smrg unsigned long palette[261]; 544f29dbc25Smrg unsigned long cursor_data[3072]; 545f29dbc25Smrg unsigned long dot_pll; 546f29dbc25Smrg unsigned long pll_flags; 547f29dbc25Smrg 548f29dbc25Smrg /* VG MSRS */ 549f29dbc25Smrg 550f29dbc25Smrg Q_WORD msr_cap; 551f29dbc25Smrg Q_WORD msr_config; 552f29dbc25Smrg Q_WORD msr_smi; 553f29dbc25Smrg Q_WORD msr_error; 554f29dbc25Smrg Q_WORD msr_pm; 555f29dbc25Smrg Q_WORD msr_diag; 556f29dbc25Smrg Q_WORD msr_spare; 557f29dbc25Smrg Q_WORD msr_ram_ctl; 558f29dbc25Smrg 559f29dbc25Smrg} VG_SAVE_RESTORE; 560f29dbc25Smrg 561f29dbc25Smrg/*-------------------------------------------*/ 562f29dbc25Smrg/* VG_GET_DISPLAY_MODE_INDEX PARAMETERS */ 563f29dbc25Smrg/*-------------------------------------------*/ 564f29dbc25Smrg 565f29dbc25Smrg#define VG_QUERYFLAG_ACTIVEWIDTH 0x00000001 566f29dbc25Smrg#define VG_QUERYFLAG_ACTIVEHEIGHT 0x00000002 567f29dbc25Smrg#define VG_QUERYFLAG_TOTALWIDTH 0x00000004 568f29dbc25Smrg#define VG_QUERYFLAG_TOTALHEIGHT 0x00000008 569f29dbc25Smrg#define VG_QUERYFLAG_BPP 0x00000010 570f29dbc25Smrg#define VG_QUERYFLAG_REFRESH 0x00000020 571f29dbc25Smrg#define VG_QUERYFLAG_PIXELCLOCK 0x00000040 572f29dbc25Smrg#define VG_QUERYFLAG_PIXELCLOCK_APPROX 0x00000080 573f29dbc25Smrg#define VG_QUERYFLAG_PANEL 0x00000100 574f29dbc25Smrg#define VG_QUERYFLAG_PANELWIDTH 0x00000200 575f29dbc25Smrg#define VG_QUERYFLAG_PANELHEIGHT 0x00000400 576f29dbc25Smrg#define VG_QUERYFLAG_TVOUT 0x00000800 577f29dbc25Smrg#define VG_QUERYFLAG_INTERLACED 0x00001000 578f29dbc25Smrg#define VG_QUERYFLAG_HALFCLOCK 0x00002000 579f29dbc25Smrg#define VG_QUERYFLAG_ENCODER 0x00004000 580f29dbc25Smrg#define VG_QUERYFLAG_TVMODE 0x00008000 581f29dbc25Smrg 582f29dbc25Smrg/*-----------------------------------------------*/ 583f29dbc25Smrg/* VG FLICKER FILTER SETTINGS */ 584f29dbc25Smrg/*-----------------------------------------------*/ 585f29dbc25Smrg 586f29dbc25Smrg#define VG_FLICKER_FILTER_NONE 0x00000000 587f29dbc25Smrg#define VG_FLICKER_FILTER_1_16 0x10000000 588f29dbc25Smrg#define VG_FLICKER_FILTER_1_8 0x20000000 589f29dbc25Smrg#define VG_FLICKER_FILTER_1_4 0x40000000 590f29dbc25Smrg#define VG_FLICKER_FILTER_5_16 0x50000000 591f29dbc25Smrg#define VG_FLICKER_FILTER_MASK 0xF0000000 592f29dbc25Smrg 593f29dbc25Smrg/*-----------------------------------------------*/ 594f29dbc25Smrg/* VG CRC SOURCES */ 595f29dbc25Smrg/*-----------------------------------------------*/ 596f29dbc25Smrg 597f29dbc25Smrg#define VG_CRC_SOURCE_PREFILTER 0x00000000 598f29dbc25Smrg#define VG_CRC_SOURCE_PREFLICKER 0x00000001 599f29dbc25Smrg#define VG_CRC_SOURCE_POSTFLICKER 0x00000002 600f29dbc25Smrg#define VG_CRC_SOURCE_PREFILTER_EVEN 0x00000010 601f29dbc25Smrg#define VG_CRC_SOURCE_PREFLICKER_EVEN 0x00000011 602f29dbc25Smrg#define VG_CRC_SOURCE_POSTFLICKER_EVEN 0x00000012 603f29dbc25Smrg#define VG_CRC_SOURCE_EVEN 0x00000010 604f29dbc25Smrg 605f29dbc25Smrg/*===================================================*/ 606f29dbc25Smrg/* DISPLAY FILTER PARAMETERS */ 607f29dbc25Smrg/*===================================================*/ 608f29dbc25Smrg 609f29dbc25Smrg/*-----------------------------------------------*/ 610f29dbc25Smrg/* VIDEO FORMAT DEFINITIONS */ 611f29dbc25Smrg/*-----------------------------------------------*/ 612f29dbc25Smrg 613f29dbc25Smrg#define DF_VIDFMT_UYVY 0x0000 614f29dbc25Smrg#define DF_VIDFMT_Y2YU 0x0001 615f29dbc25Smrg#define DF_VIDFMT_YUYV 0x0002 616f29dbc25Smrg#define DF_VIDFMT_YVYU 0x0003 617f29dbc25Smrg#define DF_VIDFMT_Y0Y1Y2Y3 0x0004 618f29dbc25Smrg#define DF_VIDFMT_Y3Y2Y1Y0 0x0005 619f29dbc25Smrg#define DF_VIDFMT_Y1Y0Y3Y2 0x0006 620f29dbc25Smrg#define DF_VIDFMT_Y1Y2Y3Y0 0x0007 621f29dbc25Smrg#define DF_VIDFMT_RGB 0x0008 622f29dbc25Smrg#define DF_VIDFMT_P2M_P2L_P1M_P1L 0x0009 623f29dbc25Smrg#define DF_VIDFMT_P1M_P1L_P2M_P2L 0x000A 624f29dbc25Smrg#define DF_VIDFMT_P1M_P2L_P2M_P1L 0x000B 625f29dbc25Smrg 626f29dbc25Smrg/*-----------------------------------------------*/ 627f29dbc25Smrg/* CRT ENABLE STATES */ 628f29dbc25Smrg/*-----------------------------------------------*/ 629f29dbc25Smrg 630f29dbc25Smrg#define DF_CRT_DISABLE 0x0000 631f29dbc25Smrg#define DF_CRT_ENABLE 0x0001 632f29dbc25Smrg#define DF_CRT_STANDBY 0x0002 633f29dbc25Smrg#define DF_CRT_SUSPEND 0x0003 634f29dbc25Smrg 635f29dbc25Smrg/*-----------------------------------------------*/ 636f29dbc25Smrg/* VIDEO SCALING FLAGS */ 637f29dbc25Smrg/*-----------------------------------------------*/ 638f29dbc25Smrg 639f29dbc25Smrg#define DF_SCALEFLAG_CHANGEX 0x0001 640f29dbc25Smrg#define DF_SCALEFLAG_CHANGEY 0x0002 641f29dbc25Smrg 642f29dbc25Smrg/*-----------------------------------------------*/ 643f29dbc25Smrg/* DISPLAY FILTER COLOR SPACES */ 644f29dbc25Smrg/*-----------------------------------------------*/ 645f29dbc25Smrg 646f29dbc25Smrg#define DF_OUTPUT_RGB 0x0001 647f29dbc25Smrg#define DF_OUTPUT_ARGB 0x0002 648f29dbc25Smrg#define DF_OUTPUT_SDTV 0x0003 649f29dbc25Smrg#define DF_OUTPUT_HDTV 0x0004 650f29dbc25Smrg 651f29dbc25Smrg/*-----------------------------------------------*/ 652f29dbc25Smrg/* DISPLAY FILTER OUTPUT PATHS */ 653f29dbc25Smrg/*-----------------------------------------------*/ 654f29dbc25Smrg 655f29dbc25Smrg#define DF_DISPLAY_CRT 0x0001 656f29dbc25Smrg#define DF_DISPLAY_FP 0x0002 657f29dbc25Smrg#define DF_DISPLAY_CRT_FP 0x0003 658f29dbc25Smrg#define DF_DISPLAY_VOP 0x0004 659f29dbc25Smrg#define DF_DISPLAY_DRGB 0x0005 660f29dbc25Smrg#define DF_DISPLAY_CRT_DRGB 0x0006 661f29dbc25Smrg 662f29dbc25Smrg/*-----------------------------------------------*/ 663f29dbc25Smrg/* WINDOWED CRC DATA SOURCES */ 664f29dbc25Smrg/*-----------------------------------------------*/ 665f29dbc25Smrg 666f29dbc25Smrg#define DF_CRC_SOURCE_GFX_DATA 0x0000 667f29dbc25Smrg#define DF_CRC_SOURCE_CRT_RGB 0x0001 668f29dbc25Smrg#define DF_CRC_SOURCE_FP_DATA 0x0002 669f29dbc25Smrg 670f29dbc25Smrg/*-----------------------------------------------*/ 671f29dbc25Smrg/* VIDEO ENABLE FLAGS */ 672f29dbc25Smrg/*-----------------------------------------------*/ 673f29dbc25Smrg 674f29dbc25Smrg#define DF_ENABLEFLAG_NOCOLORKEY 0x0001 675f29dbc25Smrg 676f29dbc25Smrg/*-----------------------------------------------*/ 677f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING A VIDEO SOURCE */ 678f29dbc25Smrg/*-----------------------------------------------*/ 679f29dbc25Smrg 680f29dbc25Smrg#define DF_SOURCEFLAG_HDTVSOURCE 0x0001 681f29dbc25Smrg#define DF_SOURCEFLAG_IMPLICITSCALING 0x0002 682f29dbc25Smrg 683f29dbc25Smrgtypedef struct tagVideoSourceInfo 684f29dbc25Smrg{ 685f29dbc25Smrg unsigned long video_format; 686f29dbc25Smrg unsigned long y_offset; 687f29dbc25Smrg unsigned long u_offset; 688f29dbc25Smrg unsigned long v_offset; 689f29dbc25Smrg unsigned long y_pitch; 690f29dbc25Smrg unsigned long uv_pitch; 691f29dbc25Smrg unsigned long width; 692f29dbc25Smrg unsigned long height; 693f29dbc25Smrg unsigned long flags; 694f29dbc25Smrg 695f29dbc25Smrg} DF_VIDEO_SOURCE_PARAMS; 696f29dbc25Smrg 697f29dbc25Smrg/*---------------------------------------------------*/ 698f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING THE VIDEO POSITION */ 699f29dbc25Smrg/*---------------------------------------------------*/ 700f29dbc25Smrg 701f29dbc25Smrg#define DF_POSFLAG_DIRECTCLIP 0x0001 702f29dbc25Smrg#define DF_POSFLAG_INCLUDEBORDER 0x0002 703f29dbc25Smrg 704f29dbc25Smrgtypedef struct tagVideoPosition 705f29dbc25Smrg{ 706f29dbc25Smrg long x; 707f29dbc25Smrg long y; 708f29dbc25Smrg unsigned long width; 709f29dbc25Smrg unsigned long height; 710f29dbc25Smrg unsigned long left_clip; 711f29dbc25Smrg unsigned long dst_clip; 712f29dbc25Smrg unsigned long flags; 713f29dbc25Smrg 714f29dbc25Smrg} DF_VIDEO_POSITION; 715f29dbc25Smrg 716f29dbc25Smrg/*-------------------------------------------------*/ 717f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING THE VIDEO CURSOR */ 718f29dbc25Smrg/*-------------------------------------------------*/ 719f29dbc25Smrg 720f29dbc25Smrgtypedef struct tagVideoCursorInfo 721f29dbc25Smrg{ 722f29dbc25Smrg unsigned long key; 723f29dbc25Smrg unsigned long mask; 724f29dbc25Smrg unsigned long color1; 725f29dbc25Smrg unsigned long color2; 726f29dbc25Smrg unsigned long select_color2; 727f29dbc25Smrg unsigned long flags; 728f29dbc25Smrg 729f29dbc25Smrg} DF_VIDEO_CURSOR_PARAMS; 730f29dbc25Smrg 731f29dbc25Smrg/*-------------------------------------------------*/ 732f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING AN ALPHA REGION */ 733f29dbc25Smrg/*-------------------------------------------------*/ 734f29dbc25Smrg 735f29dbc25Smrg#define DF_ALPHAFLAG_COLORENABLED 0x0001 736f29dbc25Smrg#define DF_ALPHAFLAG_PERPIXELENABLED 0x0002 737f29dbc25Smrg 738f29dbc25Smrgtypedef struct tagAlphaRegionInfo 739f29dbc25Smrg{ 740f29dbc25Smrg unsigned long x; 741f29dbc25Smrg unsigned long y; 742f29dbc25Smrg unsigned long width; 743f29dbc25Smrg unsigned long height; 744f29dbc25Smrg unsigned long alpha_value; 745f29dbc25Smrg unsigned long priority; 746f29dbc25Smrg unsigned long color; 747f29dbc25Smrg unsigned long flags; 748f29dbc25Smrg long delta; 749f29dbc25Smrg 750f29dbc25Smrg} DF_ALPHA_REGION_PARAMS; 751f29dbc25Smrg 752f29dbc25Smrg/*-------------------------------------------------*/ 753f29dbc25Smrg/* USER STRUCTURE FOR SAVING/RESTORING DF DATA */ 754f29dbc25Smrg/*-------------------------------------------------*/ 755f29dbc25Smrg 756f29dbc25Smrgtypedef struct tagDFSaveRestore 757f29dbc25Smrg{ 758f29dbc25Smrg unsigned long vcfg; 759f29dbc25Smrg unsigned long dcfg; 760f29dbc25Smrg unsigned long video_x; 761f29dbc25Smrg unsigned long video_y; 762f29dbc25Smrg unsigned long video_scaler; 763f29dbc25Smrg unsigned long video_color_key; 764f29dbc25Smrg unsigned long video_color_mask; 765f29dbc25Smrg unsigned long sat_limit; 766f29dbc25Smrg unsigned long vid_misc; 767f29dbc25Smrg unsigned long video_yscale; 768f29dbc25Smrg unsigned long video_xscale; 769f29dbc25Smrg unsigned long vid_alpha_control; 770f29dbc25Smrg unsigned long cursor_key; 771f29dbc25Smrg unsigned long cursor_mask; 772f29dbc25Smrg unsigned long cursor_color1; 773f29dbc25Smrg unsigned long cursor_color2; 774f29dbc25Smrg unsigned long alpha_xpos1; 775f29dbc25Smrg unsigned long alpha_ypos1; 776f29dbc25Smrg unsigned long alpha_color1; 777f29dbc25Smrg unsigned long alpha_control1; 778f29dbc25Smrg unsigned long alpha_xpos2; 779f29dbc25Smrg unsigned long alpha_ypos2; 780f29dbc25Smrg unsigned long alpha_color2; 781f29dbc25Smrg unsigned long alpha_control2; 782f29dbc25Smrg unsigned long alpha_xpos3; 783f29dbc25Smrg unsigned long alpha_ypos3; 784f29dbc25Smrg unsigned long alpha_color3; 785f29dbc25Smrg unsigned long alpha_control3; 786f29dbc25Smrg unsigned long vid_request; 787f29dbc25Smrg unsigned long vid_ypos_even; 788f29dbc25Smrg unsigned long alpha_ypos_even1; 789f29dbc25Smrg unsigned long alpha_ypos_even2; 790f29dbc25Smrg unsigned long alpha_ypos_even3; 791f29dbc25Smrg unsigned long panel_tim1; 792f29dbc25Smrg unsigned long panel_tim2; 793f29dbc25Smrg unsigned long panel_pm; 794f29dbc25Smrg unsigned long panel_dither; 795f29dbc25Smrg 796f29dbc25Smrg unsigned long palette[256]; 797f29dbc25Smrg unsigned long coefficients[512]; 798f29dbc25Smrg 799f29dbc25Smrg /* DF MSRS */ 800f29dbc25Smrg 801f29dbc25Smrg Q_WORD msr_cap; 802f29dbc25Smrg Q_WORD msr_config; 803f29dbc25Smrg Q_WORD msr_smi; 804f29dbc25Smrg Q_WORD msr_error; 805f29dbc25Smrg Q_WORD msr_pm; 806f29dbc25Smrg Q_WORD msr_diag; 807f29dbc25Smrg Q_WORD msr_df_diag; 808f29dbc25Smrg Q_WORD msr_pad_sel; 809f29dbc25Smrg 810f29dbc25Smrg} DF_SAVE_RESTORE; 811f29dbc25Smrg 812f29dbc25Smrg/*-----------------------------------------------*/ 813f29dbc25Smrg/* DF CRC SOURCES */ 814f29dbc25Smrg/*-----------------------------------------------*/ 815f29dbc25Smrg 816f29dbc25Smrg#define DF_CRC_SOURCE_ODD_FIELD 0x00000100 817f29dbc25Smrg#define DF_CRC_SOURCE_EVEN_FIELD 0x00001000 818f29dbc25Smrg#define DF_CRC_SOURCE_EVEN 0x00001000 819f29dbc25Smrg 820f29dbc25Smrg/*===================================================*/ 821f29dbc25Smrg/* VIP USER PARAMETER DEFINITIONS */ 822f29dbc25Smrg/*===================================================*/ 823f29dbc25Smrg 824f29dbc25Smrg#define VIP_MODEFLAG_VSYNCACTIVEHIGH 0x00000001 825f29dbc25Smrg#define VIP_MODEFLAG_HSYNCACTIVEHIGH 0x00000002 826f29dbc25Smrg 827f29dbc25Smrg/*---------------------------------------------*/ 828f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING 601 SETTINGS */ 829f29dbc25Smrg/*---------------------------------------------*/ 830f29dbc25Smrg 831f29dbc25Smrgtypedef struct _TAG_VIP601PARAMS 832f29dbc25Smrg{ 833f29dbc25Smrg unsigned long flags; 834f29dbc25Smrg unsigned long horz_start; 835f29dbc25Smrg unsigned long width; 836f29dbc25Smrg unsigned long vert_start_even; 837f29dbc25Smrg unsigned long even_height; 838f29dbc25Smrg unsigned long vert_start_odd; 839f29dbc25Smrg unsigned long odd_height; 840f29dbc25Smrg unsigned long vbi_start; 841f29dbc25Smrg unsigned long vbi_height; 842f29dbc25Smrg unsigned long odd_detect_start; 843f29dbc25Smrg unsigned long odd_detect_end; 844f29dbc25Smrg 845f29dbc25Smrg} VIP_601PARAMS; 846f29dbc25Smrg 847f29dbc25Smrg/*-------------------------------------------*/ 848f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING A VIP MODE */ 849f29dbc25Smrg/*-------------------------------------------*/ 850f29dbc25Smrg 851f29dbc25Smrg/* VIP MODE FLAGS */ 852f29dbc25Smrg 853f29dbc25Smrg#define VIP_MODEFLAG_PLANARCAPTURE 0x00000001 854f29dbc25Smrg#define VIP_MODEFLAG_INVERTPOLARITY 0x00000002 855f29dbc25Smrg#define VIP_MODEFLAG_PROGRESSIVE 0x00000004 856f29dbc25Smrg#define VIP_MODEFLAG_DISABLEZERODETECT 0x00000008 857f29dbc25Smrg#define VIP_MODEFLAG_ENABLEREPEATFLAG 0x00000010 858f29dbc25Smrg#define VIP_MODEFLAG_10BITANCILLARY 0x00000020 859f29dbc25Smrg#define VIP_MODEFLAG_TOGGLEEACHFIELD 0x00000040 860f29dbc25Smrg#define VIP_MODEFLAG_INVERTTASKPOLARITY 0x00000080 861f29dbc25Smrg#define VIP_MODEFLAG_FLIPMESSAGEWHENFULL 0x00000100 862f29dbc25Smrg 863f29dbc25Smrg/* VIP CAPTURE ENABLE FLAGS */ 864f29dbc25Smrg 865f29dbc25Smrg#define VIP_ENABLE_TASKA 0x00000100 866f29dbc25Smrg#define VIP_ENABLE_TASKA_VBI 0x00000200 867f29dbc25Smrg#define VIP_ENABLE_TASKB 0x00000400 868f29dbc25Smrg#define VIP_ENABLE_TASKB_VBI 0x00000800 869f29dbc25Smrg#define VIP_ENABLE_ANCILLARY 0x00001000 870f29dbc25Smrg#define VIP_ENABLE_ALL 0x00001F00 871f29dbc25Smrg 872f29dbc25Smrg/* VIP CAPTURE MODE FLAGS */ 873f29dbc25Smrg 874f29dbc25Smrg#define VIP_MODE_IDLE 0x00000000 875f29dbc25Smrg#define VIP_MODE_VIP2_8BIT 0x00000002 876f29dbc25Smrg#define VIP_MODE_VIP2_16BIT 0x00000004 877f29dbc25Smrg#define VIP_MODE_VIP1_8BIT 0x00000006 878f29dbc25Smrg#define VIP_MODE_MSG 0x00000008 879f29dbc25Smrg#define VIP_MODE_DATA 0x0000000A 880f29dbc25Smrg#define VIP_MODE_8BIT601 0x0000000C 881f29dbc25Smrg#define VIP_MODE_16BIT601 0x0000000E 882f29dbc25Smrg 883f29dbc25Smrg/* 4:2:0 PLANAR CAPTURE METHODS */ 884f29dbc25Smrg 885f29dbc25Smrg#define VIP_420CAPTURE_EVERYLINE 0x00000001 886f29dbc25Smrg#define VIP_420CAPTURE_ALTERNATINGLINES 0x00000002 887f29dbc25Smrg#define VIP_420CAPTURE_ALTERNATINGFIELDS 0x00000003 888f29dbc25Smrg 889f29dbc25Smrgtypedef struct _TAG_SETMODEBUFFER 890f29dbc25Smrg{ 891f29dbc25Smrg unsigned long flags; 892f29dbc25Smrg unsigned long stream_enables; 893f29dbc25Smrg unsigned long operating_mode; 894f29dbc25Smrg unsigned long planar_capture; 895f29dbc25Smrg VIP_601PARAMS vip601_settings; 896f29dbc25Smrg 897f29dbc25Smrg} VIPSETMODEBUFFER; 898f29dbc25Smrg 899f29dbc25Smrg/*-----------------------------------------------*/ 900f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VG/VIP GENLOCK */ 901f29dbc25Smrg/*-----------------------------------------------*/ 902f29dbc25Smrg 903f29dbc25Smrg/* LOSS OF VIDEO DETECTION FLAGS */ 904f29dbc25Smrg 905f29dbc25Smrg#define VIP_VDE_RUNAWAY_LINE 0x00800000 906f29dbc25Smrg#define VIP_VDE_VERTICAL_TIMING 0x00400000 907f29dbc25Smrg#define VIP_VDE_CLOCKS_PER_LINE 0x00200000 908f29dbc25Smrg#define VIP_VDE_LOST_CLOCK 0x00100000 909f29dbc25Smrg 910f29dbc25Smrg/* VIP VSYNC SELECT FOR THE VG */ 911f29dbc25Smrg 912f29dbc25Smrg#define VIP_VGSYNC_NONE 0x00000000 913f29dbc25Smrg#define VIP_VGSYNC_START_FRAME 0x00000001 914f29dbc25Smrg#define VIP_VGSYNC_FALLING_EDGE_VBLANK 0x00000002 915f29dbc25Smrg#define VIP_VGSYNC_RISING_EDGE_VBLANK 0x00000003 916f29dbc25Smrg#define VIP_VGSYNC_FALLING_EDGE_FIELD 0x00000004 917f29dbc25Smrg#define VIP_VGSYNC_RISING_EDGE_FIELD 0x00000005 918f29dbc25Smrg#define VIP_VGSYNC_VIP_CURRENT_LINE 0x00000006 919f29dbc25Smrg#define VIP_VGSYNC_MSG_INT 0x00000007 920f29dbc25Smrg 921f29dbc25Smrg/* VIP FIELD SELECT FOR THE VG */ 922f29dbc25Smrg 923f29dbc25Smrg#define VIP_VGFIELD_INPUT 0x00000000 924f29dbc25Smrg#define VIP_VGFIELD_INPUT_INV 0x00000008 925f29dbc25Smrg#define VIP_VGFIELD_ACTIVE_PAGE 0x00000010 926f29dbc25Smrg#define VIP_VGFIELD_ACTIVE_PAGE_IN 0x00000018 927f29dbc25Smrg 928f29dbc25Smrg/*--------------------------------------------------------*/ 929f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING THE VG VSYNC GENLOCK */ 930f29dbc25Smrg/*--------------------------------------------------------*/ 931f29dbc25Smrg 932f29dbc25Smrgtypedef struct _TAG_GENLOCKBUFFER 933f29dbc25Smrg{ 934f29dbc25Smrg unsigned long vip_signal_loss; 935f29dbc25Smrg unsigned long vsync_to_vg; 936f29dbc25Smrg unsigned long field_to_vg; 937f29dbc25Smrg unsigned long genlock_skew; 938f29dbc25Smrg int enable_timeout; 939f29dbc25Smrg 940f29dbc25Smrg} VIPGENLOCKBUFFER; 941f29dbc25Smrg 942f29dbc25Smrg/*------------------------------------------------------*/ 943f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VIP ANCILLARY CAPTURE */ 944f29dbc25Smrg/*------------------------------------------------------*/ 945f29dbc25Smrg 946f29dbc25Smrgtypedef struct _TAG_ANCILLARYBUFFER 947f29dbc25Smrg{ 948f29dbc25Smrg unsigned long msg1_base; 949f29dbc25Smrg unsigned long msg2_base; 950f29dbc25Smrg unsigned long msg_size; 951f29dbc25Smrg 952f29dbc25Smrg} VIPANCILLARYBUFFER; 953f29dbc25Smrg 954f29dbc25Smrg/*----------------------------------------------------*/ 955f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VIP CAPTURE BUFFERS */ 956f29dbc25Smrg/*----------------------------------------------------*/ 957f29dbc25Smrg 958f29dbc25Smrg#define VIP_INPUTFLAG_VBI 0x00000001 959f29dbc25Smrg#define VIP_INPUTFLAG_INVERTPOLARITY 0x00000002 960f29dbc25Smrg#define VIP_INPUTFLAG_PLANAR 0x00000004 961f29dbc25Smrg 962f29dbc25Smrg#define VIP_MAX_BUFFERS 10 963f29dbc25Smrg 964f29dbc25Smrg#define VIP_BUFFER_TASK_A 0x0000 965f29dbc25Smrg#define VIP_BUFFER_TASK_B 0x0001 966f29dbc25Smrg#define VIP_BUFFER_MAX_TASKS 0x0002 967f29dbc25Smrg 968f29dbc25Smrg#define VIP_BUFFER_A 0x0000 969f29dbc25Smrg#define VIP_BUFFER_B 0x0001 970f29dbc25Smrg#define VIP_BUFFER_ANC 0x0002 971f29dbc25Smrg#define VIP_BUFFER_MSG 0x0003 972f29dbc25Smrg#define VIP_BUFFER_601 0x0004 973f29dbc25Smrg#define VIP_BUFFER_A_ODD 0x0005 974f29dbc25Smrg#define VIP_BUFFER_A_EVEN 0x0006 975f29dbc25Smrg#define VIP_BUFFER_B_ODD 0x0007 976f29dbc25Smrg#define VIP_BUFFER_B_EVEN 0x0008 977f29dbc25Smrg 978f29dbc25Smrgtypedef struct _TAG_INPUTBUFFER_ADDR 979f29dbc25Smrg{ 980f29dbc25Smrg unsigned long even_base[VIP_MAX_BUFFERS]; 981f29dbc25Smrg unsigned long odd_base[VIP_MAX_BUFFERS]; 982f29dbc25Smrg unsigned long y_pitch; 983f29dbc25Smrg unsigned long uv_pitch; 984f29dbc25Smrg unsigned long odd_uoffset; 985f29dbc25Smrg unsigned long odd_voffset; 986f29dbc25Smrg unsigned long even_uoffset; 987f29dbc25Smrg unsigned long even_voffset; 988f29dbc25Smrg unsigned long vbi_even_base; 989f29dbc25Smrg unsigned long vbi_odd_base; 990f29dbc25Smrg 991f29dbc25Smrg} VIPINPUTBUFFER_ADDR; 992f29dbc25Smrg 993f29dbc25Smrgtypedef struct _TAG_SETINPUTBUFFER 994f29dbc25Smrg{ 995f29dbc25Smrg unsigned long flags; 996f29dbc25Smrg VIPINPUTBUFFER_ADDR offsets[VIP_BUFFER_MAX_TASKS]; 997f29dbc25Smrg unsigned long current_buffer; 998f29dbc25Smrg 999f29dbc25Smrg VIPANCILLARYBUFFER ancillaryData; 1000f29dbc25Smrg 1001f29dbc25Smrg} VIPINPUTBUFFER; 1002f29dbc25Smrg 1003f29dbc25Smrg/*------------------------------------------------------*/ 1004f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VIP SUBWINDOW CAPTURE */ 1005f29dbc25Smrg/*------------------------------------------------------*/ 1006f29dbc25Smrg 1007f29dbc25Smrgtypedef struct _TAG_SUBWINDOWBUFFER 1008f29dbc25Smrg{ 1009f29dbc25Smrg int enable; 1010f29dbc25Smrg unsigned long start; 1011f29dbc25Smrg unsigned long stop; 1012f29dbc25Smrg 1013f29dbc25Smrg} VIPSUBWINDOWBUFFER; 1014f29dbc25Smrg 1015f29dbc25Smrg/*--------------------------------------------------------*/ 1016f29dbc25Smrg/* USER STRUCTURE FOR SAVING/RESTORING VIP REGISTERS */ 1017f29dbc25Smrg/*--------------------------------------------------------*/ 1018f29dbc25Smrg 1019f29dbc25Smrgtypedef struct _TAG_VIPSTATEBUFFER 1020f29dbc25Smrg{ 1021f29dbc25Smrg unsigned long control1; 1022f29dbc25Smrg unsigned long control2; 1023f29dbc25Smrg unsigned long vip_int; 1024f29dbc25Smrg unsigned long current_target; 1025f29dbc25Smrg unsigned long max_address; 1026f29dbc25Smrg unsigned long taska_evenbase; 1027f29dbc25Smrg unsigned long taska_oddbase; 1028f29dbc25Smrg unsigned long taska_vbi_evenbase; 1029f29dbc25Smrg unsigned long taska_vbi_oddbase; 1030f29dbc25Smrg unsigned long taska_data_pitch; 1031f29dbc25Smrg unsigned long control3; 1032f29dbc25Smrg unsigned long taska_v_oddoffset; 1033f29dbc25Smrg unsigned long taska_u_oddoffset; 1034f29dbc25Smrg unsigned long taskb_evenbase; 1035f29dbc25Smrg unsigned long taskb_oddbase; 1036f29dbc25Smrg unsigned long taskb_vbi_evenbase; 1037f29dbc25Smrg unsigned long taskb_vbi_oddbase; 1038f29dbc25Smrg unsigned long taskb_pitch; 1039f29dbc25Smrg unsigned long taskb_voffset; 1040f29dbc25Smrg unsigned long taskb_uoffset; 1041f29dbc25Smrg unsigned long msg1_base; 1042f29dbc25Smrg unsigned long msg2_base; 1043f29dbc25Smrg unsigned long msg_size; 1044f29dbc25Smrg unsigned long page_offset; 1045f29dbc25Smrg unsigned long vert_start_stop; 1046f29dbc25Smrg unsigned long vsync_err_count; 1047f29dbc25Smrg unsigned long taska_u_evenoffset; 1048f29dbc25Smrg unsigned long taska_v_evenoffset; 1049f29dbc25Smrg 1050f29dbc25Smrg Q_WORD msr_config; 1051f29dbc25Smrg Q_WORD msr_smi; 1052f29dbc25Smrg Q_WORD msr_pm; 1053f29dbc25Smrg Q_WORD msr_diag; 1054f29dbc25Smrg 1055f29dbc25Smrg} VIPSTATEBUFFER; 1056f29dbc25Smrg 1057f29dbc25Smrg/*--------------------------------------------------------*/ 1058f29dbc25Smrg/* VIP_SET_CAPTURE_STATE USER PARAMETERS */ 1059f29dbc25Smrg/*--------------------------------------------------------*/ 1060f29dbc25Smrg 1061f29dbc25Smrg#define VIP_STOPCAPTURE 0x0000 1062f29dbc25Smrg#define VIP_STOPCAPTUREATLINEEND 0x0001 1063f29dbc25Smrg#define VIP_STOPCAPTUREATFIELDEND 0x0002 1064f29dbc25Smrg#define VIP_STOPCAPTUREATFRAMEEND 0x0003 1065f29dbc25Smrg#define VIP_STARTCAPTUREATNEXTLINE 0x0004 1066f29dbc25Smrg#define VIP_STARTCAPTUREATNEXTFIELD 0x0005 1067f29dbc25Smrg#define VIP_STARTCAPTUREATNEXTFRAME 0x0006 1068f29dbc25Smrg#define VIP_STARTCAPTURE 0x0007 1069f29dbc25Smrg 1070f29dbc25Smrg/*--------------------------------------------------------*/ 1071f29dbc25Smrg/* VIP_CONFIGURE_FIFO USER PARAMETERS */ 1072f29dbc25Smrg/*--------------------------------------------------------*/ 1073f29dbc25Smrg 1074f29dbc25Smrg#define VIP_VIDEOTHRESHOLD 0x3000 1075f29dbc25Smrg#define VIP_ANCILLARYTHRESHOLD 0x3001 1076f29dbc25Smrg#define VIP_VIDEOFLUSH 0x3002 1077f29dbc25Smrg#define VIP_ANCILLARYFLUSH 0x3003 1078f29dbc25Smrg 1079f29dbc25Smrg/*--------------------------------------------------------*/ 1080f29dbc25Smrg/* VIP_SET_INTERRUPT_ENABLE USER DEFINITIONS */ 1081f29dbc25Smrg/*--------------------------------------------------------*/ 1082f29dbc25Smrg 1083f29dbc25Smrg#define VIP_INT_FIFO_ERROR 0x80000000 1084f29dbc25Smrg#define VIP_INT_FIFO_WRAP 0x40000000 1085f29dbc25Smrg#define VIP_INT_FIFO_OVERFLOW 0x20000000 1086f29dbc25Smrg#define VIP_INT_FIFO_THRESHOLD 0x10000000 1087f29dbc25Smrg#define VIP_INT_LONGLINE 0x08000000 1088f29dbc25Smrg#define VIP_INT_VERTICAL_TIMING 0x04000000 1089f29dbc25Smrg#define VIP_INT_ACTIVE_PIXELS 0x02000000 1090f29dbc25Smrg#define VIP_INT_CLOCK_INPUT 0x01000000 1091f29dbc25Smrg#define VIP_INT_ANC_CHECKSUM_PARITY 0x00800000 1092f29dbc25Smrg#define VIP_INT_MSG_BUFFER_FULL 0x00400000 1093f29dbc25Smrg#define VIP_INT_END_VBLANK 0x00200000 1094f29dbc25Smrg#define VIP_INT_START_VBLANK 0x00100000 1095f29dbc25Smrg#define VIP_INT_START_EVEN 0x00080000 1096f29dbc25Smrg#define VIP_INT_START_ODD 0x00040000 1097f29dbc25Smrg#define VIP_INT_LINE_MATCH_TARGET 0x00020000 1098f29dbc25Smrg#define VIP_ALL_INTERRUPTS 0xFFFE0000 1099f29dbc25Smrg 1100f29dbc25Smrg/*--------------------------------------------------------*/ 1101f29dbc25Smrg/* VIP_GET_CURRENT_FIELD RETURN VALUES */ 1102f29dbc25Smrg/*--------------------------------------------------------*/ 1103f29dbc25Smrg 1104f29dbc25Smrg#define VIP_ODD_FIELD 1 1105f29dbc25Smrg#define VIP_EVEN_FIELD 0 1106f29dbc25Smrg 1107f29dbc25Smrg/*-------------------------------------------------*/ 1108f29dbc25Smrg/* USER STRUCTURE FOR QUERYING VIP CAPABILITIES */ 1109f29dbc25Smrg/*-------------------------------------------------*/ 1110f29dbc25Smrg 1111f29dbc25Smrgtypedef struct _TAG_CAPABILITIESBUFFER 1112f29dbc25Smrg{ 1113f29dbc25Smrg unsigned long revision_id; 1114f29dbc25Smrg unsigned long device_id; 1115f29dbc25Smrg unsigned long n_clock_domains; 1116f29dbc25Smrg unsigned long n_smi_registers; 1117f29dbc25Smrg 1118f29dbc25Smrg} VIPCAPABILITIESBUFFER; 1119f29dbc25Smrg 1120f29dbc25Smrg/*-------------------------------------------------*/ 1121f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VIP POWER */ 1122f29dbc25Smrg/*-------------------------------------------------*/ 1123f29dbc25Smrg 1124f29dbc25Smrgtypedef struct _TAG_POWERBUFFER 1125f29dbc25Smrg{ 1126f29dbc25Smrg int glink_clock_mode; 1127f29dbc25Smrg int vip_clock_mode; 1128f29dbc25Smrg 1129f29dbc25Smrg} VIPPOWERBUFFER; 1130f29dbc25Smrg 1131f29dbc25Smrg/*-------------------------------------------------*/ 1132f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VIP PRIORITIES */ 1133f29dbc25Smrg/*-------------------------------------------------*/ 1134f29dbc25Smrg 1135f29dbc25Smrgtypedef struct _TAG_PRIORITYBUFFER 1136f29dbc25Smrg{ 1137f29dbc25Smrg unsigned long secondary; 1138f29dbc25Smrg unsigned long primary; 1139f29dbc25Smrg unsigned long pid; 1140f29dbc25Smrg 1141f29dbc25Smrg} VIPPRIORITYBUFFER; 1142f29dbc25Smrg 1143f29dbc25Smrg/*--------------------------------------------------*/ 1144f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VIP DEBUG OUTPUTS */ 1145f29dbc25Smrg/*--------------------------------------------------*/ 1146f29dbc25Smrg 1147f29dbc25Smrg#define VIP_DIAG_UPPER_GLINK_MASTER 0x00010000 1148f29dbc25Smrg#define VIP_DIAG_UPPER_GLINK_SLAVE 0x00020000 1149f29dbc25Smrg#define VIP_DIAG_UPPER_GLINK_SLAVE_MMREG 0x00040000 1150f29dbc25Smrg#define VIP_DIAG_UPPER_Y_BUFFER 0x00080000 1151f29dbc25Smrg#define VIP_DIAG_UPPER_A_BUFFER 0x00100000 1152f29dbc25Smrg#define VIP_DIAG_UPPER_FIFO_OUTPUT 0x00200000 1153f29dbc25Smrg#define VIP_DIAG_UPPER_FIFO_INPUT 0x01000000 1154f29dbc25Smrg#define VIP_DIAG_UPPER_FORMATTER 0x02000000 1155f29dbc25Smrg#define VIP_DIAG_UPPER_INPUT_CONTROL 0x04000000 1156f29dbc25Smrg 1157f29dbc25Smrg#define VIP_DIAG_LOWER_GLINK_MASTER 0x00000001 1158f29dbc25Smrg#define VIP_DIAG_LOWER_GLINK_SLAVE 0x00000002 1159f29dbc25Smrg#define VIP_DIAG_LOWER_GLINK_SLAVE_MMREG 0x00000004 1160f29dbc25Smrg#define VIP_DIAG_LOWER_Y_BUFFER 0x00000008 1161f29dbc25Smrg#define VIP_DIAG_LOWER_A_BUFFER 0x00000010 1162f29dbc25Smrg#define VIP_DIAG_LOWER_FIFO_OUTPUT 0x00000020 1163f29dbc25Smrg#define VIP_DIAG_LOWER_FIFO_INPUT 0x00000100 1164f29dbc25Smrg#define VIP_DIAG_LOWER_FORMATTER 0x00000200 1165f29dbc25Smrg#define VIP_DIAG_LOWER_INPUT_CONTROL 0x00000400 1166f29dbc25Smrg 1167f29dbc25Smrgtypedef struct _TAG_DEBUGBUFFER 1168f29dbc25Smrg{ 1169f29dbc25Smrg unsigned long bist; 1170f29dbc25Smrg unsigned long enable_upper; 1171f29dbc25Smrg unsigned long select_upper; 1172f29dbc25Smrg unsigned long enable_lower; 1173f29dbc25Smrg unsigned long select_lower; 1174f29dbc25Smrg 1175f29dbc25Smrg} VIPDEBUGBUFFER; 1176f29dbc25Smrg 1177f29dbc25Smrg/*===================================================*/ 1178f29dbc25Smrg/* VOP USER PARAMETER DEFINITIONS */ 1179f29dbc25Smrg/*===================================================*/ 1180f29dbc25Smrg 1181f29dbc25Smrg/*------------------------------------------------------*/ 1182f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VBI CAPTURE */ 1183f29dbc25Smrg/*------------------------------------------------------*/ 1184f29dbc25Smrg 1185f29dbc25Smrgtypedef struct _TAG_VBIWINDOWBUFFER 1186f29dbc25Smrg{ 1187f29dbc25Smrg long horz_start; 1188f29dbc25Smrg unsigned long vbi_width; 1189f29dbc25Smrg unsigned long odd_line_capture_mask; 1190f29dbc25Smrg unsigned long even_line_capture_mask; 1191f29dbc25Smrg unsigned long odd_line_offset; 1192f29dbc25Smrg unsigned long even_line_offset; 1193f29dbc25Smrg unsigned long even_address_offset; 1194f29dbc25Smrg unsigned long odd_address_offset; 1195f29dbc25Smrg unsigned long data_size; 1196f29dbc25Smrg unsigned long data_pitch; 1197f29dbc25Smrg int enable_upscale; 1198f29dbc25Smrg int horz_from_hsync; 1199f29dbc25Smrg 1200f29dbc25Smrg} VOPVBIWINDOWBUFFER; 1201f29dbc25Smrg 1202f29dbc25Smrg/*------------------------------------------------------*/ 1203f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING 601 FOR VOP */ 1204f29dbc25Smrg/*------------------------------------------------------*/ 1205f29dbc25Smrg 1206f29dbc25Smrg#define VOP_601_INVERT_DISPE 0x00080000 1207f29dbc25Smrg#define VOP_601_INVERT_VSYNC 0x00040000 1208f29dbc25Smrg#define VOP_601_INVERT_HSYNC 0x00020000 1209f29dbc25Smrg 1210f29dbc25Smrg#define VOP_VSYNC_EARLIER_BY4 0x00000000 1211f29dbc25Smrg#define VOP_VSYNC_EARLIER_BY2 0x00004000 1212f29dbc25Smrg#define VOP_VSYNC_NOSHIFT 0x00008000 1213f29dbc25Smrg#define VOP_VSYNC_LATER_BY_X 0x0000C000 1214f29dbc25Smrg 1215f29dbc25Smrg#define VOP_601_YUV_8BIT 0x00000000 1216f29dbc25Smrg#define VOP_601_YUV_16BIT 0x00000001 1217f29dbc25Smrg#define VOP_601_RGB_8_8_8 0x00000002 1218f29dbc25Smrg#define VOP_601_YUV_4_4_4 0x00000003 1219f29dbc25Smrg 1220f29dbc25Smrgtypedef struct _TAG_VOP601 1221f29dbc25Smrg{ 1222f29dbc25Smrg unsigned long flags; 1223f29dbc25Smrg unsigned long vsync_shift; 1224f29dbc25Smrg unsigned long vsync_shift_count; 1225f29dbc25Smrg unsigned long output_mode; 1226f29dbc25Smrg 1227f29dbc25Smrg} VOP_601DATA; 1228f29dbc25Smrg 1229f29dbc25Smrg/*------------------------------------------------------*/ 1230f29dbc25Smrg/* USER STRUCTURE FOR CONFIGURING VOP OUTPUT */ 1231f29dbc25Smrg/*------------------------------------------------------*/ 1232f29dbc25Smrg 1233f29dbc25Smrg/* VOP FLAGS */ 1234f29dbc25Smrg 1235f29dbc25Smrg#define VOP_FLAG_SINGLECHIPCOMPAT 0x00000001 1236f29dbc25Smrg#define VOP_FLAG_EXTENDEDSAV 0x00000002 1237f29dbc25Smrg#define VOP_FLAG_VBI 0x00000008 1238f29dbc25Smrg#define VOP_FLAG_TASK 0x00000010 1239f29dbc25Smrg#define VOP_FLAG_SWAP_UV 0x00000020 1240f29dbc25Smrg#define VOP_FLAG_SWAP_VBI 0x00000040 1241f29dbc25Smrg 1242f29dbc25Smrg/* 4:4:2 TO 4:2:2 DECIMATION */ 1243f29dbc25Smrg 1244f29dbc25Smrg#define VOP_422MODE_COSITED 0x00000000 1245f29dbc25Smrg#define VOP_422MODE_INTERSPERSED 0x00000010 1246f29dbc25Smrg#define VOP_422MODE_ALTERNATING 0x00000020 1247f29dbc25Smrg 1248f29dbc25Smrg/* VOP OPERATING MODES */ 1249f29dbc25Smrg 1250f29dbc25Smrg#define VOP_MODE_DISABLED 0x00000000 1251f29dbc25Smrg#define VOP_MODE_VIP11 0x00000001 1252f29dbc25Smrg#define VOP_MODE_CCIR656 0x00000002 1253f29dbc25Smrg#define VOP_MODE_VIP20_8BIT 0x00000003 1254f29dbc25Smrg#define VOP_MODE_VIP20_16BIT 0x00000004 1255f29dbc25Smrg#define VOP_MODE_601 0x00000005 1256f29dbc25Smrg 1257f29dbc25Smrg/* VSYNC OUT SELECT FLAGS */ 1258f29dbc25Smrg 1259f29dbc25Smrg#define VOP_MB_SYNCSEL_DISABLED 0x00000000 1260f29dbc25Smrg#define VOP_MB_SYNCSEL_VG 0x00000020 1261f29dbc25Smrg#define VOP_MB_SYNCSEL_VG_INV 0x00000040 1262f29dbc25Smrg#define VOP_MB_SYNCSEL_STATREG17 0x00000060 1263f29dbc25Smrg#define VOP_MB_SYNCSEL_STATREG17_INV 0x00000080 1264f29dbc25Smrg 1265f29dbc25Smrgtypedef struct _TAG_VOPMODECONFIGURATIONBUFFER 1266f29dbc25Smrg{ 1267f29dbc25Smrg unsigned long flags; 1268f29dbc25Smrg unsigned long mode; 1269f29dbc25Smrg unsigned long conversion_mode; 1270f29dbc25Smrg unsigned long vsync_out; 1271f29dbc25Smrg VOP_601DATA vop601; 1272f29dbc25Smrg 1273f29dbc25Smrg} VOPCONFIGURATIONBUFFER; 1274f29dbc25Smrg 1275f29dbc25Smrg/*--------------------------------------------------------*/ 1276f29dbc25Smrg/* USER STRUCTURE FOR SAVING/RESTORING VOP REGISTERS */ 1277f29dbc25Smrg/*--------------------------------------------------------*/ 1278f29dbc25Smrg 1279f29dbc25Smrgtypedef struct _TAG_VOPSTATEBUFFER 1280f29dbc25Smrg{ 1281f29dbc25Smrg unsigned long config; 1282f29dbc25Smrg} VOPSTATEBUFFER; 1283f29dbc25Smrg 1284f29dbc25Smrg#endif 1285