aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/xgifb/vb_def.h
blob: 4de182b23d414816b9da2ad3e9446e76c831a99f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/xgi/initdef.h,v 1.4 2000/12/02 01:16:17 dawes Exp $ */
#ifndef _INITDEF_
#define _INITDEF_

#ifndef NewScratch
#define NewScratch
#endif
/* shampoo */

#define SEQ_ADDRESS_PORT	  0x0014
#define SEQ_DATA_PORT		  0x0015
#define MISC_OUTPUT_REG_READ_PORT 0x001C
#define MISC_OUTPUT_REG_WRITE_PORT 0x0012
#define GRAPH_DATA_PORT		  0x1F
#define GRAPH_ADDRESS_PORT	  0x1E
#define XGI_MASK_DUAL_CHIP	  0x04  /* SR3A */
#define CRTC_ADDRESS_PORT_COLOR   0x0024
#define VIDEO_SUBSYSTEM_ENABLE_PORT 0x0013
#define PCI_COMMAND		0x04

/* ~shampoo */


#define VB_XGI301	      0x0001  /*301b*/
#define VB_XGI301B        0x0002
#define VB_XGI302B        0x0004
#define VB_XGI301LV     0x0008 /*301lv*/
#define VB_XGI302LV     0x0010
#define VB_XGI301C      0x0020       /* for 301C */
#define  VB_NoLCD        0x8000
/*end 301b*/

#define VB_YPbPrInfo     0x07          /*301lv*/
#define VB_YPbPr525i     0x00
#define VB_YPbPr525p     0x01
#define VB_YPbPr750p     0x02
#define VB_YPbPr1080i    0x03

/* #define CRT1Len 17 */
#define LVDSCRT1Len             15
#define CHTVRegDataLen          5

/* #define ModeInfoFlag 0x07 */
/* #define IsTextMode 0x07 */
/* #define ModeText 0x00 */
/* #define ModeCGA 0x01 */
/* #define ModeEGA 0x02 */
/* #define ModeVGA 0x03 */
/* #define Mode15Bpp 0x04 */
/* #define Mode16Bpp 0x05 */
/* #define Mode24Bpp 0x06 */
/* #define Mode32Bpp 0x07 */

/* #define DACInfoFlag 0x18 */
/* #define MemoryInfoFlag 0x1E0 */
/* #define MemorySizeShift 0x05 */

#define Charx8Dot               0x0200
#define LineCompareOff          0x0400
#define CRT2Mode                0x0800
#define HalfDCLK                0x1000
#define NoSupportSimuTV         0x2000
#define DoubleScanMode          0x8000

#define SupportAllCRT2          0x0078
#define SupportTV               0x0008
#define SupportHiVisionTV       0x0010
#define SupportLCD              0x0020
#define SupportRAMDAC2          0x0040
#define NoSupportTV             0x0070
#define NoSupportHiVisionTV     0x0060
#define NoSupportLCD            0x0058
#define SupportCHTV 		0x0800
#define SupportCRT2in301C       0x0100       /* for 301C */
#define SupportTV1024           0x0800  /*301b*/
#define SupportYPbPr            0x1000  /*301lv*/
#define InterlaceMode           0x0080
#define SyncPP                  0x0000
#define SyncPN                  0x4000
#define SyncNP                  0x8000
/* #define SyncNN 0xc000 */
#define ECLKindex0              0x0000
#define ECLKindex1              0x0100
#define ECLKindex2              0x0200
#define ECLKindex3              0x0300
#define ECLKindex4              0x0400

#define SetSimuScanMode         0x0001
#define SwitchToCRT2            0x0002
/* #define SetCRT2ToTV 0x009C */
#define SetCRT2ToAVIDEO         0x0004
#define SetCRT2ToSVIDEO         0x0008
#define SetCRT2ToSCART          0x0010
#define SetCRT2ToLCD            0x0020
#define SetCRT2ToRAMDAC         0x0040
#define SetCRT2ToHiVisionTV     0x0080
#define SetNTSCTV               0x0000
/* #define SetPALTV 0x0100 */
#define SetInSlaveMode          0x0200
#define SetNotSimuMode          0x0400
#define SetNotSimuTVMode        0x0400
#define SetDispDevSwitch        0x0800
#define LoadDACFlag             0x1000
#define DisableCRT2Display      0x2000
#define DriverMode              0x4000
#define HotKeySwitch            0x8000
#define SetCHTVOverScan  	0x8000
/* #define SetCRT2ToLCDA 0x8000 301b */
#define PanelRGB18Bit           0x0100
#define PanelRGB24Bit           0x0000

#define TVOverScan              0x10
#define TVOverScanShift         4
#define ClearBufferFlag         0x20
#define EnableDualEdge 		0x01		/*301b*/
#define SetToLCDA		0x02

#define YPbPrModeInfo           0x38
/* #define YPbPrMode525i 0x00 */
/* #define YPbPrMode525p 0x08 */
/* #define YPbPrMode750p 0x10 */
/* #define YPbPrMode1080i 0x18 */

#define SetSCARTOutput          0x01
#define BoardTVType             0x02
#define  EnablePALMN           0x40
/* #define ProgrammingCRT2 0x01 */
/* #define TVSimuMode 0x02 */
/* #define RPLLDIV2XO 0x04 */
/* #define LCDVESATiming 0x08 */
/* #define EnableLVDSDDA 0x10 */
#define SetDispDevSwitchFlag    0x20
#define CheckWinDos             0x40
#define SetJDOSMode             0x80

#define Panel320x480              0x07/*fstn*/
/* [ycchen] 02/12/03 Modify for Multi-Sync. LCD Support */
#define PanelResInfo            0x1F	/* CR36 Panel Type/LCDResInfo */
#define PanelRefInfo            0x60
#define Panel800x600            0x01
#define Panel1024x768           0x02
#define Panel1024x768x75        0x22
#define Panel1280x1024          0x03
#define Panel1280x1024x75       0x23
#define Panel640x480            0x04
#define Panel1024x600           0x05
#define Panel1152x864           0x06
#define Panel1280x960           0x07
#define Panel1152x768           0x08
#define Panel1400x1050          0x09
#define Panel1280x768           0x0A
#define Panel1600x1200          0x0B

#define PanelRef60Hz            0x00
#define PanelRef75Hz            0x20
#define LCDRGB18Bit             0x01

#define ExtChipTrumpion         0x06
#define ExtChipCH7005           0x08
#define ExtChipMitacTV          0x0a
#define LCDNonExpanding         0x10
#define LCDNonExpandingShift    4
#define LCDSync                 0x20
#define LCDSyncBit              0xe0
#define LCDSyncShift            6

/* #define DDC2DelayTime 300 */

#define CRT2DisplayFlag         0x2000
/* #define LCDDataLen 8 */
/* #define HiTVDataLen 12 */
/* #define TVDataLen 16 */
/* #define SetPALTV 0x0100 */
#define HalfDCLK                0x1000
#define NTSCHT                  1716
#define NTSCVT                  525
#define PALHT                   1728
#define PALVT                   625
#define StHiTVHT                892
#define StHiTVVT                1126
#define StHiTextTVHT            1000
#define StHiTextTVVT            1126
#define ExtHiTVHT               2100
#define ExtHiTVVT               1125

#define St750pTVHT              1716
#define St750pTVVT               525
#define Ext750pTVHT             1716
#define Ext750pTVVT              525
#define St525pTVHT              1716
#define St525pTVVT               525
#define Ext525pTVHT             1716
#define Ext525pTVVT              525
#define St525iTVHT              1716
#define St525iTVVT               525
#define Ext525iTVHT             1716
#define Ext525iTVVT              525

#define VCLKStartFreq           25
#define SoftDramType            0x80
#define VCLK40                  0x04

#define VCLK162             	0x21

#define LCDRGB18Bit             0x01
#define LoadDACFlag             0x1000
#define AfterLockCRT2           0x4000
#define SetCRT2ToAVIDEO         0x0004
#define SetCRT2ToSCART          0x0010
#define Ext2StructSize          5


#define YPbPr525iVCLK           0x03B
#define YPbPr525iVCLK_2         0x03A

#define SwitchToCRT2            0x0002
/* #define LCDVESATiming 0x08 */
#define SetSCARTOutput          0x01
#define AVIDEOSense             0x01
#define SVIDEOSense             0x02
#define SCARTSense              0x04
#define LCDSense                0x08
#define Monitor1Sense           0x20
#define Monitor2Sense           0x10
#define HiTVSense               0x40
#define BoardTVType             0x02
#define HotPlugFunction         0x08
#define StStructSize            0x06


#define XGI_CRT2_PORT_00        0x00 - 0x030
#define XGI_CRT2_PORT_04        0x04 - 0x030
#define XGI_CRT2_PORT_10        0x10 - 0x30
#define XGI_CRT2_PORT_12        0x12 - 0x30
#define XGI_CRT2_PORT_14        0x14 - 0x30


#define LCDNonExpanding         0x10
#define ADR_CRT2PtrData         0x20E
#define offset_Zurac            0x210
#define ADR_LVDSDesPtrData      0x212
#define ADR_LVDSCRT1DataPtr     0x214
#define ADR_CHTVVCLKPtr         0x216
#define ADR_CHTVRegDataPtr      0x218

#define LVDSDataLen             6
/* #define EnableLVDSDDA 0x10 */
/* #define LVDSDesDataLen 3 */
#define ActiveNonExpanding      0x40
#define ActiveNonExpandingShift 6
/* #define ActivePAL 0x20 */
#define ActivePALShift          5
/* #define ModeSwitchStatus 0x0F */
#define SoftTVType              0x40
#define SoftSettingAddr         0x52
#define ModeSettingAddr         0x53

/* #define SelectCRT1Rate 0x4 */

#define _PanelType00             0x00
#define _PanelType01             0x08
#define _PanelType02             0x10
#define _PanelType03             0x18
#define _PanelType04             0x20
#define _PanelType05             0x28
#define _PanelType06             0x30
#define _PanelType07             0x38
#define _PanelType08             0x40
#define _PanelType09             0x48
#define _PanelType0A             0x50
#define _PanelType0B             0x58
#define _PanelType0C             0x60
#define _PanelType0D             0x68
#define _PanelType0E             0x70
#define _PanelType0F             0x78


#define PRIMARY_VGA       0     /* 1: XGI is primary vga 0:XGI is secondary vga */
#define BIOSIDCodeAddr          0x235
#define OEMUtilIDCodeAddr       0x237
#define VBModeIDTableAddr       0x239
#define OEMTVPtrAddr            0x241
#define PhaseTableAddr          0x243
#define NTSCFilterTableAddr     0x245
#define PALFilterTableAddr      0x247
#define OEMLCDPtr_1Addr         0x249
#define OEMLCDPtr_2Addr         0x24B
#define LCDHPosTable_1Addr      0x24D
#define LCDHPosTable_2Addr      0x24F
#define LCDVPosTable_1Addr      0x251
#define LCDVPosTable_2Addr      0x253
#define OEMLCDPIDTableAddr      0x255

#define VBModeStructSize        5
#define PhaseTableSize          4
#define FilterTableSize         4
#define LCDHPosTableSize        7
#define LCDVPosTableSize        5
#define OEMLVDSPIDTableSize     4
#define LVDSHPosTableSize       4
#define LVDSVPosTableSize       6

#define VB_ModeID               0
#define VB_TVTableIndex         1
#define VB_LCDTableIndex        2
#define VB_LCDHIndex            3
#define VB_LCDVIndex            4

#define OEMLCDEnable            0x0001
#define OEMLCDDelayEnable       0x0002
#define OEMLCDPOSEnable         0x0004
#define OEMTVEnable             0x0100
#define OEMTVDelayEnable        0x0200
#define OEMTVFlickerEnable      0x0400
#define OEMTVPhaseEnable        0x0800
#define OEMTVFilterEnable       0x1000

#define OEMLCDPanelIDSupport    0x0080

/* #define LCDVESATiming 0x0001 //LCD Info CR37 */
/* #define EnableLVDSDDA 0x0002 */
#define EnableScalingLCD        0x0008
#define SetPWDEnable            0x0004
#define SetLCDtoNonExpanding    0x0010
/* #define SetLCDPolarity 0x00E0 */
#define SetLCDDualLink          0x0100
#define SetLCDLowResolution     0x0200
#define SetLCDStdMode           0x0400
#define SetTVStdMode            0x0200
#define SetTVLowResolution      0x0400
/* =============================================================
   for 310
============================================================== */
#define SoftDRAMType        0x80
#define SoftSetting_OFFSET  0x52
#define SR07_OFFSET  0x7C
#define SR15_OFFSET  0x7D
#define SR16_OFFSET  0x81
#define SR17_OFFSET  0x85
#define SR19_OFFSET  0x8D
#define SR1F_OFFSET  0x99
#define SR21_OFFSET  0x9A
#define SR22_OFFSET  0x9B
#define SR23_OFFSET  0x9C
#define SR24_OFFSET  0x9D
#define SR25_OFFSET  0x9E
#define SR31_OFFSET  0x9F
#define SR32_OFFSET  0xA0
#define SR33_OFFSET  0xA1

#define CR40_OFFSET  0xA2
#define SR25_1_OFFSET  0xF6
#define CR49_OFFSET  0xF7

#define VB310Data_1_2_Offset  0xB6
#define VB310Data_4_D_Offset  0xB7
#define VB310Data_4_E_Offset  0xB8
#define VB310Data_4_10_Offset 0xBB

#define RGBSenseDataOffset    0xBD
#define YCSenseDataOffset     0xBF
#define VideoSenseDataOffset  0xC1
#define OutputSelectOffset    0xF3

#define ECLK_MCLK_DISTANCE  0x14
#define VBIOSTablePointerStart    0x200
#define StandTablePtrOffset       VBIOSTablePointerStart+0x02
#define EModeIDTablePtrOffset     VBIOSTablePointerStart+0x04
#define CRT1TablePtrOffset        VBIOSTablePointerStart+0x06
#define ScreenOffsetPtrOffset     VBIOSTablePointerStart+0x08
#define VCLKDataPtrOffset         VBIOSTablePointerStart+0x0A
#define MCLKDataPtrOffset         VBIOSTablePointerStart+0x0E
#define CRT2PtrDataPtrOffset      VBIOSTablePointerStart+0x10
#define TVAntiFlickPtrOffset      VBIOSTablePointerStart+0x12
#define TVDelayPtr1Offset         VBIOSTablePointerStart+0x14
#define TVPhaseIncrPtr1Offset     VBIOSTablePointerStart+0x16
#define TVYFilterPtr1Offset       VBIOSTablePointerStart+0x18
#define LCDDelayPtr1Offset        VBIOSTablePointerStart+0x20
#define TVEdgePtr1Offset          VBIOSTablePointerStart+0x24
#define CRT2Delay1Offset          VBIOSTablePointerStart+0x28
#define LCDDataDesOffset     VBIOSTablePointerStart-0x02
#define LCDDataPtrOffset          VBIOSTablePointerStart+0x2A
#define LCDDesDataPtrOffset     VBIOSTablePointerStart+0x2C
#define LCDDataList		VBIOSTablePointerStart+0x22	/* add for GetLCDPtr */
#define TVDataList		VBIOSTablePointerStart+0x36	/* add for GetTVPtr */
/*  */
/* Modify from 310.inc */
/*  */
/*  */


#define		ShowMsgFlag                  0x20               /* SoftSetting */
#define		ShowVESAFlag                 0x10
#define		HotPlugFunction              0x08
#define		ModeSoftSetting              0x04
#define		TVSoftSetting                0x02
#define		LCDSoftSetting               0x01

#define		GatingCRTinLCDA              0x10
#define		SetHiTVOutput                0x08
#define		SetYPbPrOutput               0x04
#define		BoardTVType                  0x02
#define		SetSCARTOutput               0x01

#define		ModeSettingYPbPr             0x02               /* TVModeSetting, Others as same as CR30 */

/* TVModeSetting same as CR35 */

/* LCDModeSetting same as CR37 */

#define		EnableNewTVFont              0x10               /* MiscCapability */

#define		EnableLCDOutput              0x80               /* LCDCfgSetting */

#define		SoftDRAMType                 0x80               /* DRAMSetting */
#define		SoftDRAMConfig               0x40
#define		MosSelDRAMType               0x20
#define		SDRAM                        000h
#define		SGRAM                        0x01
#define		ESDRAM                       0x02

#define		EnableAGPCfgSetting          0x01               /* AGPCfgSetting */

/* ---------------- SetMode Stack */
#define		CRT1Len                      15
#define		VCLKLen                      4
#define		DefThreshold                 0x0100
#define		ExtRegsSize                  (57+8+37+70+63+28+768+1)/64+1

#define		VGA_XGI315                   0x0001       /* VGA Type Info */
#define		VGA_SNewis315e                  0x0002       /* 315 series */
#define		VGA_XGI550                   0x0004
#define		VGA_XGI640                   0x0008
#define		VGA_XGI740                   0x0010
#define		VGA_XGI650                   0x0020
#define		VGA_XGI650M                  0x0040
#define		VGA_XGI651                   0x0080
#define		VGA_XGI340                   0x0001       /* 340 series */
#define		VGA_XGI330                   0x0001       /* 330 series */
#define		VGA_XGI660                   0x0001       /* 660 series */

#define		VB_XGI301                    0x0001       /* VB Type Info */
#define		VB_XGI301B                   0x0002       /* 301 series */
#define		VB_XGI302B                   0x0004
#define		VB_NoLCD                     0x8000
#define		VB_XGI301LV                  0x0008
#define		VB_XGI302LV                  0x0010
#define		VB_LVDS_NS                   0x0001       /* 3rd party chip */
#define		VB_CH7017                    0x0002
#define         VB_CH7007                    0x0080       /* [Billy] 07/05/03 */
/* #define VB_LVDS_SI 0x0004 */

#define		ModeInfoFlag                 0x0007
#define		IsTextMode                   0x0007
#define		ModeText                     0x0000
#define		ModeCGA                      0x0001
#define		ModeEGA                      0x0002       /* 16 colors mode */
#define		ModeVGA                      0x0003       /* 256 colors mode */
#define		Mode15Bpp                    0x0004       /* 15 Bpp Color Mode */
#define		Mode16Bpp                    0x0005       /* 16 Bpp Color Mode */
#define		Mode24Bpp                    0x0006       /* 24 Bpp Color Mode */
#define		Mode32Bpp                    0x0007       /* 32 Bpp Color Mode */

#define		DACInfoFlag                  0x0018
#define		MONODAC                      0x0000
#define		CGADAC                       0x0008
#define		EGADAC                       0x0010
#define		VGADAC                       0x0018

#define		MemoryInfoFlag               0x01e0
#define		MemorySizeShift              5
#define		Need1MSize                   0x0000
#define		Need2MSize                   0x0020
#define		Need4MSize                   0x0060
#define		Need8MSize                   0x00e0
#define		Need16MSize                  0x01e0

#define		Charx8Dot                    0x0200
#define		LineCompareOff               0x0400
#define		CRT2Mode                     0x0800
#define		HalfDCLK                     0x1000
#define		NoSupportSimuTV              0x2000
#define		DoubleScanMode               0x8000

/* -------------- Ext_InfoFlag */
#define		SupportModeInfo              0x0007
#define		Support256                   0x0003
#define		Support15Bpp                 0x0004
#define		Support16Bpp                 0x0005
#define		Support24Bpp                 0x0006
#define		Support32Bpp                 0x0007

#define		SupportAllCRT2               0x0078
#define		SupportTV                    0x0008
#define		SupportHiVisionTV            0x0010
#define		SupportLCD                   0x0020
#define		SupportRAMDAC2               0x0040
#define		NoSupportTV                  0x0070
#define		NoSupportHiVisionTV          0x0060
#define		NoSupportLCD                 0x0058
#define		SupportTV1024                0x0800       /* 301btest */
#define		SupportYPbPr                 0x1000       /* 301lv */
#define		InterlaceMode                0x0080
#define		SyncPP                       0x0000
#define		SyncPN                       0x4000
#define		SyncNP                       0x8000
#define		SyncNN                       0xC000

/* -------------- SetMode Stack/Scratch */
#define		SetSimuScanMode              0x0001       /* VBInfo/CR30 & CR31 */
#define		SwitchToCRT2                 0x0002
#define		SetCRT2ToTV1                 0x009C
#define		SetCRT2ToTV                  0x089C
#define		SetCRT2ToAVIDEO              0x0004
#define		SetCRT2ToSVIDEO              0x0008
#define		SetCRT2ToSCART               0x0010
#define		SetCRT2ToLCD                 0x0020
#define		SetCRT2ToRAMDAC              0x0040
#define		SetCRT2ToHiVisionTV          0x0080
#define		SetCRT2ToLCDA                0x0100
#define		SetInSlaveMode               0x0200
#define		SetNotSimuMode               0x0400
#define		HKEventMode                  0x0800
#define		SetCRT2ToYPbPr               0x0800
#define		LoadDACFlag                  0x1000
#define		DisableCRT2Display           0x2000
#define		DriverMode                   0x4000
#define		SetCRT2ToDualEdge            0x8000
#define		HotKeySwitch                 0x8000

#define		ProgrammingCRT2              0x0001       /* Set Flag */
#define		EnableVCMode                 0x0002
#define		SetHKEventMode               0x0004
#define		ReserveTVOption              0x0008
#define		DisableRelocateIO            0x0010
#define		Win9xDOSMode                 0x0020
#define		JDOSMode                     0x0040
/* #define SetWin9xforJap 0x0080 // not used now */
/* #define SetWin9xforKorea 0x0100 // not used now */
#define		GatingCRT                    0x0800
#define		DisableChB                   0x1000
#define		EnableChB                    0x2000
#define		DisableChA                   0x4000
#define		EnableChA                    0x8000

#define		SetNTSCTV                    0x0000       /* TV Info */
#define		SetPALTV                     0x0001
#define		SetNTSCJ                     0x0002
#define		SetPALMTV                    0x0004
#define		SetPALNTV                    0x0008
#define		SetCHTVUnderScan             0x0000
/* #define SetCHTVOverScan 0x0010 */
#define		SetYPbPrMode525i             0x0020
#define		SetYPbPrMode525p             0x0040
#define		SetYPbPrMode750p             0x0080
#define		SetYPbPrMode1080i            0x0100
#define		SetTVStdMode                 0x0200
#define		SetTVLowResolution           0x0400
#define		SetTVSimuMode                0x0800
#define		TVSimuMode                   0x0800
#define		RPLLDIV2XO                   0x1000
#define		NTSC1024x768                 0x2000
#define		SetTVLockMode                0x4000

#define		LCDVESATiming                0x0001       /* LCD Info/CR37 */
#define		EnableLVDSDDA                0x0002
#define		EnableScalingLCD             0x0008
#define		SetPWDEnable                 0x0004
#define		SetLCDtoNonExpanding         0x0010
#define		SetLCDPolarity               0x00e0
#define		SetLCDDualLink               0x0100
#define		SetLCDLowResolution          0x0200
#define		SetLCDStdMode                0x0400

#define		DefaultLCDCap                0x80ea       /* LCD Capability shampoo */
#define		RLVDSDHL00                   0x0000
#define		RLVDSDHL01                   0x0001
#define		RLVDSDHL10                   0x0002       /* default */
#define		RLVDSDHL11                   0x0003
#define		EnableLCD24bpp               0x0004       /* default */
#define		DisableLCD24bpp              0x0000
#define		RLVDSClkSFT0                 0x0000
#define		RLVDSClkSFT1                 0x0008       /* default */
#define		EnableLVDSDCBal              0x0010
#define		DisableLVDSDCBal             0x0000       /* default */
#define		SinglePolarity               0x0020       /* default */
#define		MultiPolarity                0x0000
#define		LCDPolarity                  0x00c0       /* default: SyncNN */
#define		LCDSingleLink                0x0000       /* default */
#define		LCDDualLink                  0x0100
#define		EnableSpectrum               0x0200
#define		DisableSpectrum              0x0000       /* default */
#define		PWDEnable                    0x0400
#define		PWDDisable                   0x0000       /* default */
#define		PWMEnable                    0x0800
#define		PWMDisable                   0x0000       /* default */
#define		EnableVBCLKDRVLOW            0x4000
#define		EnableVBCLKDRVHigh           0x0000       /* default */
#define		EnablePLLSPLOW               0x8000
#define		EnablePLLSPHigh              0x0000       /* default */

#define		LCDBToA                      0x20               /* LCD SetFlag */
#define		StLCDBToA                    0x40
#define		LockLCDBToA                  0x80
#define 	LCDToFull             	     0x10
#define		AVIDEOSense                  0x01               /* CR32 */
#define		SVIDEOSense                  0x02
#define		SCARTSense                   0x04
#define		LCDSense                     0x08
#define		Monitor2Sense                0x10
#define		Monitor1Sense                0x20
#define		HiTVSense                    0x40

#ifdef                   NewScratch
#define		YPbPrSense                   0x80    /* NEW SCRATCH */
#endif

#define		TVSense                      0xc7

#define		TVOverScan                   0x10               /* CR35 */
#define		TVOverScanShift              4

#ifdef                   NewScratch
#define		NTSCMode                     0x00
#define		PALMode                      0x00
#define		NTSCJMode                    0x02
#define		PALMNMode                    0x0c
#define		YPbPrMode                    0xe0
#define		YPbPrMode525i                0x00
#define		YPbPrMode525p                0x20
#define		YPbPrMode750p                0x40
#define		YPbPrMode1080i               0x60
#else                    /* Old Scratch */
#define		ClearBufferFlag              0x20
#endif


#define		LCDRGB18Bit                  0x01               /* CR37 */
#define		LCDNonExpanding              0x10
#define		LCDNonExpandingShift         4
#define		LCDSync                      0x20
#define		LCDSyncBit                   0xe0               /* H/V polarity & sync ID */
#define		LCDSyncShift                 6

#ifdef                   NewScratch
#define		ScalingLCD                   0x08
#else                    /* Old Scratch */
#define		ExtChipType                  0x0e
#define		ExtChip301                   0x02
#define		ExtChipLVDS                  0x04
#define		ExtChipCH7019                0x06
#define		ScalingLCD                   0x10
#endif

#define		EnableDualEdge               0x01               /* CR38 */
#define		SetToLCDA                    0x02
#ifdef                   NewScratch
#define		SetYPbPr                     0x04
#define		DisableChannelA              0x08
#define		DisableChannelB              0x10
#define		ExtChipType                  0xe0
#define		ExtChip301                   0x20
#define		ExtChipLVDS                  0x40
#define		ExtChipCH7019                0x60
#else                    /* Old Scratch */
#define		YPbPrSense                   0x04
#define		SetYPbPr                     0x08
#define		YPbPrMode                    0x30
#define		YPbPrMode525i                0x00
#define		YPbPrMode525p                0x10
#define		YPbPrMode750p                0x20
#define		YPbPrMode1080i               0x30
#define		PALMNMode                    0xc0
#endif

#define		BacklightControlBit          0x01               /* CR3A */
#define		Win9xforJap                  0x40
#define		Win9xforKorea                0x80

#define		ForceMDBits                  0x07               /* CR3B */
#define		ForceMD_JDOS                 0x00
#define		ForceMD_640x400T             0x01
#define		ForceMD_640x350T             0x02
#define		ForceMD_720x400T             0x03
#define		ForceMD_640x480E             0x04
#define		ForceMD_640x400E             0x05
#define		ForceP1Bit                   0x10
#define		ForceP2Bit                   0x20
#define		EnableForceMDinBIOS          0x40
#define		EnableForceMDinDrv           0x80

#ifdef                   NewScratch                      /* New Scratch */
/* ---------------------- VUMA Information */
#define		LCDSettingFromCMOS           0x04               /* CR3C */
#define		TVSettingFromCMOS            0x08
#define		DisplayDeviceFromCMOS        0x10
#define		HKSupportInSBIOS             0x20
#define		OSDSupportInSBIOS            0x40
#define		DisableLogo                  0x80

/* ---------------------- HK Evnet Definition */
#define		HKEvent                      0x0f               /* CR3D */
#define		HK_ModeSwitch                0x01
#define		HK_Expanding                 0x02
#define		HK_OverScan                  0x03
#define		HK_Brightness                0x04
#define		HK_Contrast                  0x05
#define		HK_Mute                      0x06
#define		HK_Volume                    0x07
#define		ModeSwitchStatus             0xf0
#define		ActiveCRT1                   0x10
#define		ActiveLCD                    0x0020
#define		ActiveTV                     0x40
#define		ActiveCRT2                   0x80

#define		TVSwitchStatus               0x1f               /* CR3E */
#define		ActiveAVideo                 0x01
#define		ActiveSVideo                 0x02
#define		ActiveSCART                  0x04
#define		ActiveHiTV                   0x08
#define		ActiveYPbPr                  0x10

#define		EnableHKEvent                0x01               /* CR3F */
#define		EnableOSDEvent               0x02
#define		StartOSDEvent                0x04
#define		IgnoreHKEvent                0x08
#define		IgnoreOSDEvent               0x10
#else                    /* Old Scratch */
#define		OSD_SBIOS                    0x02       /* SR17 */
#define		DisableLogo                  0x04
#define		SelectKDOS                   0x08
#define		KorWinMode                   0x10
#define		KorMode3Bit                  0x0020
#define		PSCCtrlBit                  0x40
#define		NPSCCtrlBitShift             6
#define		BlueScreenBit                0x80

#define		HKEvent                      0x0f       /* CR79 */
#define		HK_ModeSwitch                0x01
#define		HK_Expanding                 0x02
#define		HK_OverScan                  0x03
#define		HK_Brightness                0x04
#define		HK_Contrast                  0x05
#define		HK_Mute                      0x06
#define		HK_Volume                    0x07
#define		ActivePAL                    0x0020
#define		ActivePALShift               5
#define		ActiveNonExpanding           0x40
#define		ActiveNonExpandingShift      6
#define		ActiveOverScan               0x80
#define		ActiveOverScanShift          7

#define		ModeSwitchStatus             0x0b       /* SR15 */
#define		ActiveCRT1                   0x01
#define		ActiveLCD                    0x02
#define		ActiveCRT2                   0x08

#define		TVSwitchStatus               0xf0       /* SR16 */
#define		TVConfigShift                3
#define		ActiveTV                     0x01
#define		ActiveYPbPr                  0x04
#define		ActiveAVideo                 0x10
#define		ActiveSVideo                 0x0020
#define		ActiveSCART                  0x40
#define		ActiveHiTV                   0x80

#define		EnableHKEvent                0x01       /* CR7A */
#define		EnableOSDEvent               0x02
#define		StartOSDEvent                0x04
#define		CMOSSupport                  0x08
#define		HotKeySupport                0x10
#define		IngoreHKOSDEvent             0x20
#endif

/* //------------- Misc. Definition */
#define		SelectCRT1Rate               00h
/* #define SelectCRT2Rate 04h */

#define		DDC1DelayTime                1000
#ifdef           TRUMPION
#define		DDC2DelayTime                15
#else
#define		DDC2DelayTime                150
#endif

#define		R_FACTOR                     04Dh
#define		G_FACTOR                     097h
#define		B_FACTOR                     01Ch
/* --------------------------------------------------------- */
/* translated from asm code 301def.h */
/*  */
/* --------------------------------------------------------- */
#define		LCDDataLen                   8
#define		HiTVDataLen                  12
#define		TVDataLen                    12
#define		LVDSCRT1Len_H                8
#define		LVDSCRT1Len_V                7
#define		LVDSDataLen                  6
#define		LVDSDesDataLen               6
#define		LCDDesDataLen                6
#define		LVDSDesDataLen2              8
#define		LCDDesDataLen2               8
#define		CHTVRegLen                   16
#define		CHLVRegLen                   12

#define		StHiTVHT                     892
#define		StHiTVVT                     1126
#define		StHiTextTVHT                 1000
#define		StHiTextTVVT                 1126
#define		ExtHiTVHT                    2100
#define		ExtHiTVVT                    1125
#define		NTSCHT                       1716
#define		NTSCVT                        525
#define		NTSC1024x768HT               1908
#define		NTSC1024x768VT                525
#define		PALHT                        1728
#define		PALVT                         625

#define		YPbPrTV525iHT                1716            /* YPbPr */
#define		YPbPrTV525iVT                 525
#define		YPbPrTV525pHT                1716
#define		YPbPrTV525pVT                 525
#define		YPbPrTV750pHT                1650
#define		YPbPrTV750pVT                 750

#define		CRT2VCLKSel                  0xc0

#define		CRT2Delay1      	     0x04            /* XGI301 */
#define		CRT2Delay2      	     0x0A            /* 301B,302 */


#define		VCLK25_175           0x00
#define		VCLK28_322           0x01
#define		VCLK31_5             0x02
#define		VCLK36               0x03
#define		VCLK40               0x04
#define		VCLK43_163           0x05
#define		VCLK44_9             0x06
#define		VCLK49_5             0x07
#define		VCLK50               0x08
#define		VCLK52_406           0x09
#define		VCLK56_25            0x0A
#define		VCLK65               0x0B
#define		VCLK67_765           0x0C
#define		VCLK68_179           0x0D
#define		VCLK72_852           0x0E
#define		VCLK75               0x0F
#define		VCLK75_8             0x10
#define		VCLK78_75            0x11
#define		VCLK79_411           0x12
#define		VCLK83_95            0x13
#define		VCLK84_8             0x14
#define		VCLK86_6             0x15
#define		VCLK94_5             0x16
#define		VCLK104_998          0x17
#define		VCLK105_882          0x18
#define		VCLK108_2            0x19
#define		VCLK109_175          0x1A
#define		VCLK113_309          0x1B
#define		VCLK116_406          0x1C
#define		VCLK132_258          0x1D
#define		VCLK135_5            0x1E
#define		VCLK139_054          0x1F
#define		VCLK157_5            0x20
#define		VCLK162              0x21
#define		VCLK175              0x22
#define		VCLK189              0x23
#define		VCLK194_4            0x24
#define		VCLK202_5            0x25
#define		VCLK229_5            0x26
#define		VCLK234              0x27
#define		VCLK252_699          0x28
#define		VCLK254_817          0x29
#define		VCLK265_728          0x2A
#define		VCLK266_952          0x2B
#define		VCLK269_655          0x2C
#define		VCLK272_042          0x2D
#define		VCLK277_015          0x2E
#define		VCLK286_359          0x2F
#define		VCLK291_132          0x30
#define		VCLK291_766          0x31
#define		VCLK309_789          0x32
#define		VCLK315_195          0x33
#define		VCLK323_586          0x34
#define		VCLK330_615          0x35
#define		VCLK332_177          0x36
#define		VCLK340_477          0x37
#define		VCLK375_847          0x38
#define		VCLK388_631          0x39
#define		VCLK125_999          0x51
#define		VCLK148_5            0x52
#define		VCLK178_992          0x54
#define		VCLK217_325          0x55
#define		VCLK299_505          0x56
#define		YPbPr750pVCLK        0x57

#define		TVVCLKDIV2              0x3A
#define		TVVCLK                  0x3B
#define		HiTVVCLKDIV2          0x3C
#define		HiTVVCLK              0x3D
#define		HiTVSimuVCLK          0x3E
#define		HiTVTextVCLK          0x3F
#define		VCLK39_77              0x40
/* #define YPbPr750pVCLK 0x0F */
#define		YPbPr525pVCLK           0x3A
/* #define ;;YPbPr525iVCLK 0x3B */
/* #define ;;YPbPr525iVCLK_2 0x3A */
#define		NTSC1024VCLK         0x41
#define		VCLK25_175_41        0x42                  /* ; ScaleLCD */
#define		VCLK25_175_42        0x43
#define		VCLK28_322_43        0x44
#define		VCLK40_44            0x45
#define		VCLKQVGA_1           0x46                   /* ; QVGA */
#define		VCLKQVGA_2           0x47
#define		VCLKQVGA_3           0x48
#define		VCLK35_2             0x49                    /* ; 800x480 */
#define		VCLK122_61           0x4A
#define		VCLK80_350           0x4B
#define		VCLK107_385          0x4C

#define		CHTVVCLK30_2         0x50                 /* ;;CHTV */
#define		CHTVVCLK28_1         0x51
#define		CHTVVCLK43_6         0x52
#define		CHTVVCLK26_4         0x53
#define		CHTVVCLK24_6         0x54
#define		CHTVVCLK47_8         0x55
#define		CHTVVCLK31_5         0x56
#define		CHTVVCLK26_2         0x57
#define		CHTVVCLK39           0x58
#define		CHTVVCLK36           0x59

#define		CH7007TVVCLK30_2     0x00                 /* [Billy] 2007/05/18 For CH7007 */
#define		CH7007TVVCLK28_1     0x01
#define		CH7007TVVCLK43_6     0x02
#define		CH7007TVVCLK26_4     0x03
#define		CH7007TVVCLK24_6     0x04
#define		CH7007TVVCLK47_8     0x05
#define		CH7007TVVCLK31_5     0x06
#define		CH7007TVVCLK26_2     0x07
#define		CH7007TVVCLK39       0x08
#define		CH7007TVVCLK36       0x09

#define		RES320x200                   0x00
#define		RES320x240                   0x01
#define		RES400x300                   0x02
#define		RES512x384                   0x03
#define		RES640x400                   0x04
#define		RES640x480x60                0x05
#define		RES640x480x72                0x06
#define		RES640x480x75                0x07
#define		RES640x480x85                0x08
#define		RES640x480x100               0x09
#define		RES640x480x120               0x0A
#define		RES640x480x160               0x0B
#define		RES640x480x200               0x0C
#define		RES800x600x56                0x0D
#define		RES800x600x60                0x0E
#define		RES800x600x72                0x0F
#define		RES800x600x75                0x10
#define		RES800x600x85                0x11
#define		RES800x600x100               0x12
#define		RES800x600x120               0x13
#define		RES800x600x160               0x14
#define		RES1024x768x43               0x15
#define		RES1024x768x60               0x16
#define		RES1024x768x70               0x17
#define		RES1024x768x75               0x18
#define		RES1024x768x85               0x19
#define		RES1024x768x100              0x1A
#define		RES1024x768x120              0x1B
#define		RES1280x1024x43              0x1C
#define		RES1280x1024x60              0x1D
#define		RES1280x1024x75              0x1E
#define		RES1280x1024x85              0x1F
#define		RES1600x1200x60              0x20
#define		RES1600x1200x65              0x21
#define		RES1600x1200x70              0x22
#define		RES1600x1200x75              0x23
#define		RES1600x1200x85              0x24
#define		RES1600x1200x100             0x25
#define		RES1600x1200x120             0x26
#define		RES1920x1440x60              0x27
#define		RES1920x1440x65              0x28
#define		RES1920x1440x70              0x29
#define		RES1920x1440x75              0x2A
#define		RES1920x1440x85              0x2B
#define		RES1920x1440x100             0x2C
#define		RES2048x1536x60              0x2D
#define		RES2048x1536x65              0x2E
#define		RES2048x1536x70              0x2F
#define		RES2048x1536x75              0x30
#define		RES2048x1536x85              0x31
#define		RES800x480x60                0x32
#define		RES800x480x75                0x33
#define		RES800x480x85                0x34
#define		RES1024x576x60               0x35
#define		RES1024x576x75               0x36
#define		RES1024x576x85               0x37
#define		RES1280x720x60               0x38
#define		RES1280x720x75               0x39
#define		RES1280x720x85               0x3A
#define		RES1280x960x60               0x3B
#define		RES720x480x60                0x3C
#define		RES720x576x56                0x3D
#define		RES856x480x79I               0x3E
#define		RES856x480x60                0x3F
#define		RES1280x768x60               0x40
#define		RES1400x1050x60              0x41
#define		RES1152x864x60               0x42
#define		RES1152x864x75               0x43
#define		RES1024x768x160              0x44
#define		RES1280x960x75               0x45
#define		RES1280x960x85               0x46
#define		RES1280x960x120              0x47

#define 	LFBDRAMTrap                  0x30
#endif