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