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