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
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
|
/*
* radeon.h
* This software has been released under the terms of the GNU Public
* license. See http://www.gnu.org/copyleft/gpl.html for details.
*
* This collection of definition was written by Nick Kurshev
* It's based on radeonfb, X11, GATOS sources
* and partly compatible with Rage128 set (in OV0, CAP0, CAP1 parts)
*/
#ifndef RADEON_H
#define RADEON_H
/* radeon PCI ids */
#define PCI_DEVICE_ID_RADEON_QD 0x5144
#define PCI_DEVICE_ID_RADEON_QE 0x5145
#define PCI_DEVICE_ID_RADEON_QF 0x5146
#define PCI_DEVICE_ID_RADEON_QG 0x5147
#define PCI_DEVICE_ID_RADEON_QY 0x5159
#define PCI_DEVICE_ID_RADEON_QZ 0x515A
#define PCI_DEVICE_ID_RADEON_LY 0x4C59
#define PCI_DEVICE_ID_RADEON_LZ 0x4C5A
#define PCI_DEVICE_ID_RADEON_LW 0x4C57
#define PCI_DEVICE_ID_R200_QL 0x514C
#define PCI_DEVICE_ID_RV200_QW 0x5157
#define PCI_DEVICE_ID_R200_BB 0x4242
#define RADEON_REGSIZE 0x4000
#define MM_INDEX 0x0000
/* MM_INDEX bit constants */
# define MM_APER 0x80000000
#define MM_DATA 0x0004
#define BUS_CNTL 0x0030
/* BUS_CNTL bit constants */
# define BUS_DBL_RESYNC 0x00000001
# define BUS_MSTR_RESET 0x00000002
# define BUS_FLUSH_BUF 0x00000004
# define BUS_STOP_REQ_DIS 0x00000008
# define BUS_ROTATION_DIS 0x00000010
# define BUS_MASTER_DIS 0x00000040
# define BUS_ROM_WRT_EN 0x00000080
# define BUS_DIS_ROM 0x00001000
# define BUS_PCI_READ_RETRY_EN 0x00002000
# define BUS_AGP_AD_STEPPING_EN 0x00004000
# define BUS_PCI_WRT_RETRY_EN 0x00008000
# define BUS_MSTR_RD_MULT 0x00100000
# define BUS_MSTR_RD_LINE 0x00200000
# define BUS_SUSPEND 0x00400000
# define LAT_16X 0x00800000
# define BUS_RD_DISCARD_EN 0x01000000
# define BUS_RD_ABORT_EN 0x02000000
# define BUS_MSTR_WS 0x04000000
# define BUS_PARKING_DIS 0x08000000
# define BUS_MSTR_DISCONNECT_EN 0x10000000
# define BUS_WRT_BURST 0x20000000
# define BUS_READ_BURST 0x40000000
# define BUS_RDY_READ_DLY 0x80000000
#define HI_STAT 0x004C
#define BUS_CNTL1 0x0034
# define BUS_WAIT_ON_LOCK_EN (1 << 4)
#define I2C_CNTL_0 0x0090
# define I2C_DONE (1<<0)
# define I2C_NACK (1<<1)
# define I2C_HALT (1<<2)
# define I2C_SOFT_RST (1<<5)
# define I2C_DRIVE_EN (1<<6)
# define I2C_DRIVE_SEL (1<<7)
# define I2C_START (1<<8)
# define I2C_STOP (1<<9)
# define I2C_RECEIVE (1<<10)
# define I2C_ABORT (1<<11)
# define I2C_GO (1<<12)
# define I2C_SEL (1<<16)
# define I2C_EN (1<<17)
#define I2C_CNTL_1 0x0094
#define I2C_DATA 0x0098
#define CONFIG_CNTL 0x00E0
/* CONFIG_CNTL bit constants */
# define CFG_VGA_RAM_EN 0x00000100
#define CONFIG_MEMSIZE 0x00F8
#define CONFIG_APER_0_BASE 0x0100
#define CONFIG_APER_1_BASE 0x0104
#define CONFIG_APER_SIZE 0x0108
#define CONFIG_REG_1_BASE 0x010C
#define CONFIG_REG_APER_SIZE 0x0110
#define PAD_AGPINPUT_DELAY 0x0164
#define PAD_CTLR_STRENGTH 0x0168
#define PAD_CTLR_UPDATE 0x016C
#define AGP_CNTL 0x0174
# define AGP_APER_SIZE_256MB (0x00 << 0)
# define AGP_APER_SIZE_128MB (0x20 << 0)
# define AGP_APER_SIZE_64MB (0x30 << 0)
# define AGP_APER_SIZE_32MB (0x38 << 0)
# define AGP_APER_SIZE_16MB (0x3c << 0)
# define AGP_APER_SIZE_8MB (0x3e << 0)
# define AGP_APER_SIZE_4MB (0x3f << 0)
# define AGP_APER_SIZE_MASK (0x3f << 0)
#define AMCGPIO_A_REG 0x01a0
#define AMCGPIO_EN_REG 0x01a8
#define AMCGPIO_MASK 0x0194
#define AMCGPIO_Y_REG 0x01a4
#define BM_STATUS 0x0160
#define MPP_TB_CONFIG 0x01c0 /* ? */
#define MPP_GP_CONFIG 0x01c8 /* ? */
#define VENDOR_ID 0x0F00
#define DEVICE_ID 0x0F02
#define COMMAND 0x0F04
#define STATUS 0x0F06
#define REVISION_ID 0x0F08
#define REGPROG_INF 0x0F09
#define SUB_CLASS 0x0F0A
#define CACHE_LINE 0x0F0C
#define LATENCY 0x0F0D
#define HEADER 0x0F0E
#define BIST 0x0F0F
#define REG_MEM_BASE 0x0F10
#define REG_IO_BASE 0x0F14
#define REG_REG_BASE 0x0F18
#define ADAPTER_ID 0x0F2C
#define BIOS_ROM 0x0F30
#define CAPABILITIES_PTR 0x0F34
#define INTERRUPT_LINE 0x0F3C
#define INTERRUPT_PIN 0x0F3D
#define MIN_GRANT 0x0F3E
#define MAX_LATENCY 0x0F3F
#define ADAPTER_ID_W 0x0F4C
#define PMI_CAP_ID 0x0F50
#define PMI_NXT_CAP_PTR 0x0F51
#define PMI_PMC_REG 0x0F52
#define PM_STATUS 0x0F54
#define PMI_DATA 0x0F57
#define AGP_CAP_ID 0x0F58
#define AGP_STATUS 0x0F5C
# define AGP_1X_MODE 0x01
# define AGP_2X_MODE 0x02
# define AGP_4X_MODE 0x04
# define AGP_MODE_MASK 0x07
#define AGP_COMMAND 0x0F60
/* Video muxer unit */
#define VIDEOMUX_CNTL 0x0190
#define VIPPAD_MASK 0x0198
#define VIPPAD1_A 0x01AC
#define VIPPAD1_EN 0x01B0
#define VIPPAD1_Y 0x01B4
#define AIC_CTRL 0x01D0
#define AIC_STAT 0x01D4
#define AIC_PT_BASE 0x01D8
#define AIC_LO_ADDR 0x01DC
#define AIC_HI_ADDR 0x01E0
#define AIC_TLB_ADDR 0x01E4
#define AIC_TLB_DATA 0x01E8
#define DAC_CNTL 0x0058
/* DAC_CNTL bit constants */
# define DAC_8BIT_EN 0x00000100
# define DAC_4BPP_PIX_ORDER 0x00000200
# define DAC_CRC_EN 0x00080000
# define DAC_MASK_ALL (0xff << 24)
# define DAC_VGA_ADR_EN (1 << 13)
# define DAC_RANGE_CNTL (3 << 0)
# define DAC_BLANKING (1 << 2)
#define DAC_CNTL2 0x007c
/* DAC_CNTL2 bit constants */
# define DAC2_DAC_CLK_SEL (1 << 0)
# define DAC2_DAC2_CLK_SEL (1 << 1)
# define DAC2_PALETTE_ACC_CTL (1 << 5)
#define TV_DAC_CNTL 0x088c
/* TV_DAC_CNTL bit constants */
# define TV_DAC_STD_MASK 0x0300
# define TV_DAC_RDACPD (1 << 24)
# define TV_DAC_GDACPD (1 << 25)
# define TV_DAC_BDACPD (1 << 26)
#define CRTC_GEN_CNTL 0x0050
/* CRTC_GEN_CNTL bit constants */
# define CRTC_DBL_SCAN_EN 0x00000001
# define CRTC_INTERLACE_EN (1 << 1)
# define CRTC_CSYNC_EN (1 << 4)
# define CRTC_CUR_EN 0x00010000
# define CRTC_CUR_MODE_MASK (7 << 17)
# define CRTC_ICON_EN (1 << 20)
# define CRTC_EXT_DISP_EN (1 << 24)
# define CRTC_EN (1 << 25)
# define CRTC_DISP_REQ_EN_B (1 << 26)
#define CRTC2_GEN_CNTL 0x03f8
/* CRTC2_GEN_CNTL bit constants */
# define CRTC2_DBL_SCAN_EN (1 << 0)
# define CRTC2_INTERLACE_EN (1 << 1)
# define CRTC2_SYNC_TRISTAT (1 << 4)
# define CRTC2_HSYNC_TRISTAT (1 << 5)
# define CRTC2_VSYNC_TRISTAT (1 << 6)
# define CRTC2_CRT2_ON (1 << 7)
# define CRTC2_ICON_EN (1 << 15)
# define CRTC2_CUR_EN (1 << 16)
# define CRTC2_CUR_MODE_MASK (7 << 20)
# define CRTC2_DISP_DIS (1 << 23)
# define CRTC2_EN (1 << 25)
# define CRTC2_DISP_REQ_EN_B (1 << 26)
# define CRTC2_HSYNC_DIS (1 << 28)
# define CRTC2_VSYNC_DIS (1 << 29)
#define MEM_CNTL 0x0140
/* MEM_CNTL bit constants */
# define MEM_CTLR_STATUS_IDLE 0x00000000
# define MEM_CTLR_STATUS_BUSY 0x00100000
# define MEM_SEQNCR_STATUS_IDLE 0x00000000
# define MEM_SEQNCR_STATUS_BUSY 0x00200000
# define MEM_ARBITER_STATUS_IDLE 0x00000000
# define MEM_ARBITER_STATUS_BUSY 0x00400000
# define MEM_REQ_UNLOCK 0x00000000
# define MEM_REQ_LOCK 0x00800000
#define EXT_MEM_CNTL 0x0144
#define MC_AGP_LOCATION 0x014C
#define MEM_IO_CNTL_A0 0x0178
#define MEM_INIT_LATENCY_TIMER 0x0154
#define MEM_SDRAM_MODE_REG 0x0158
#define AGP_BASE 0x0170
#define MEM_IO_CNTL_A1 0x017C
#define MEM_IO_CNTL_B0 0x0180
#define MEM_IO_CNTL_B1 0x0184
#define MC_DEBUG 0x0188
#define MC_STATUS 0x0150
#define MEM_IO_OE_CNTL 0x018C
#define MC_FB_LOCATION 0x0148
#define HOST_PATH_CNTL 0x0130
#define MEM_VGA_WP_SEL 0x0038
#define MEM_VGA_RP_SEL 0x003C
#define HDP_DEBUG 0x0138
#define SW_SEMAPHORE 0x013C
#define SURFACE_CNTL 0x0B00
/* SURFACE_CNTL bit constants */
# define SURF_TRANSLATION_DIS (1 << 8)
# define NONSURF_AP0_SWP_16BPP (1 << 20)
# define NONSURF_AP0_SWP_32BPP (2 << 20)
#define SURFACE0_LOWER_BOUND 0x0B04
#define SURFACE1_LOWER_BOUND 0x0B14
#define SURFACE2_LOWER_BOUND 0x0B24
#define SURFACE3_LOWER_BOUND 0x0B34
#define SURFACE4_LOWER_BOUND 0x0B44
#define SURFACE5_LOWER_BOUND 0x0B54
#define SURFACE6_LOWER_BOUND 0x0B64
#define SURFACE7_LOWER_BOUND 0x0B74
#define SURFACE0_UPPER_BOUND 0x0B08
#define SURFACE1_UPPER_BOUND 0x0B18
#define SURFACE2_UPPER_BOUND 0x0B28
#define SURFACE3_UPPER_BOUND 0x0B38
#define SURFACE4_UPPER_BOUND 0x0B48
#define SURFACE5_UPPER_BOUND 0x0B58
#define SURFACE6_UPPER_BOUND 0x0B68
#define SURFACE7_UPPER_BOUND 0x0B78
#define SURFACE0_INFO 0x0B0C
#define SURFACE1_INFO 0x0B1C
#define SURFACE2_INFO 0x0B2C
#define SURFACE3_INFO 0x0B3C
#define SURFACE4_INFO 0x0B4C
#define SURFACE5_INFO 0x0B5C
#define SURFACE6_INFO 0x0B6C
#define SURFACE7_INFO 0x0B7C
#define SURFACE_ACCESS_FLAGS 0x0BF8
#define SURFACE_ACCESS_CLR 0x0BFC
#define GEN_INT_CNTL 0x0040
#define GEN_INT_STATUS 0x0044
# define VSYNC_INT_AK (1 << 2)
# define VSYNC_INT (1 << 2)
#define CRTC_EXT_CNTL 0x0054
/* CRTC_EXT_CNTL bit constants */
# define CRTC_VGA_XOVERSCAN (1 << 0)
# define VGA_ATI_LINEAR 0x00000008
# define VGA_128KAP_PAGING 0x00000010
# define XCRT_CNT_EN (1 << 6)
# define CRTC_HSYNC_DIS (1 << 8)
# define CRTC_VSYNC_DIS (1 << 9)
# define CRTC_DISPLAY_DIS (1 << 10)
# define CRTC_SYNC_TRISTAT (1 << 11)
# define CRTC_CRT_ON (1 << 15)
#define CRTC_EXT_CNTL_DPMS_BYTE 0x0055
# define CRTC_HSYNC_DIS_BYTE (1 << 0)
# define CRTC_VSYNC_DIS_BYTE (1 << 1)
# define CRTC_DISPLAY_DIS_BYTE (1 << 2)
#define RB3D_CNTL 0x1C3C
#define WAIT_UNTIL 0x1720
#define ISYNC_CNTL 0x1724
#define RBBM_GUICNTL 0x172C
#define RBBM_STATUS 0x0E40
# define RBBM_FIFOCNT_MASK 0x007f
# define RBBM_ACTIVE (1 << 31)
#define RBBM_STATUS_alt_1 0x1740
#define RBBM_CNTL 0x00EC
#define RBBM_CNTL_alt_1 0x0E44
#define RBBM_SOFT_RESET 0x00F0
/* RBBM_SOFT_RESET bit constants */
# define SOFT_RESET_CP (1 << 0)
# define SOFT_RESET_HI (1 << 1)
# define SOFT_RESET_SE (1 << 2)
# define SOFT_RESET_RE (1 << 3)
# define SOFT_RESET_PP (1 << 4)
# define SOFT_RESET_E2 (1 << 5)
# define SOFT_RESET_RB (1 << 6)
# define SOFT_RESET_HDP (1 << 7)
#define RBBM_SOFT_RESET_alt_1 0x0E48
#define NQWAIT_UNTIL 0x0E50
#define RBBM_DEBUG 0x0E6C
#define RBBM_CMDFIFO_ADDR 0x0E70
#define RBBM_CMDFIFO_DATAL 0x0E74
#define RBBM_CMDFIFO_DATAH 0x0E78
#define RBBM_CMDFIFO_STAT 0x0E7C
#define CRTC_STATUS 0x005C
/* CRTC_STATUS bit constants */
# define CRTC_VBLANK 0x00000001
# define CRTC_VBLANK_SAVE ( 1 << 1)
#define GPIO_VGA_DDC 0x0060
#define GPIO_DVI_DDC 0x0064
#define GPIO_MONID 0x0068
#define PALETTE_INDEX 0x00B0
#define PALETTE_DATA 0x00B4
#define PALETTE_30_DATA 0x00B8
#define CRTC_H_TOTAL_DISP 0x0200
# define CRTC_H_TOTAL (0x03ff << 0)
# define CRTC_H_TOTAL_SHIFT 0
# define CRTC_H_DISP (0x01ff << 16)
# define CRTC_H_DISP_SHIFT 16
#define CRTC2_H_TOTAL_DISP 0x0300
# define CRTC2_H_TOTAL (0x03ff << 0)
# define CRTC2_H_TOTAL_SHIFT 0
# define CRTC2_H_DISP (0x01ff << 16)
# define CRTC2_H_DISP_SHIFT 16
#define CRTC_H_SYNC_STRT_WID 0x0204
# define CRTC_H_SYNC_STRT_PIX (0x07 << 0)
# define CRTC_H_SYNC_STRT_CHAR (0x3ff << 3)
# define CRTC_H_SYNC_STRT_CHAR_SHIFT 3
# define CRTC_H_SYNC_WID (0x3f << 16)
# define CRTC_H_SYNC_WID_SHIFT 16
# define CRTC_H_SYNC_POL (1 << 23)
#define CRTC2_H_SYNC_STRT_WID 0x0304
# define CRTC2_H_SYNC_STRT_PIX (0x07 << 0)
# define CRTC2_H_SYNC_STRT_CHAR (0x3ff << 3)
# define CRTC2_H_SYNC_STRT_CHAR_SHIFT 3
# define CRTC2_H_SYNC_WID (0x3f << 16)
# define CRTC2_H_SYNC_WID_SHIFT 16
# define CRTC2_H_SYNC_POL (1 << 23)
#define CRTC_V_TOTAL_DISP 0x0208
# define CRTC_V_TOTAL (0x07ff << 0)
# define CRTC_V_TOTAL_SHIFT 0
# define CRTC_V_DISP (0x07ff << 16)
# define CRTC_V_DISP_SHIFT 16
#define CRTC2_V_TOTAL_DISP 0x0308
# define CRTC2_V_TOTAL (0x07ff << 0)
# define CRTC2_V_TOTAL_SHIFT 0
# define CRTC2_V_DISP (0x07ff << 16)
# define CRTC2_V_DISP_SHIFT 16
#define CRTC_V_SYNC_STRT_WID 0x020C
# define CRTC_V_SYNC_STRT (0x7ff << 0)
# define CRTC_V_SYNC_STRT_SHIFT 0
# define CRTC_V_SYNC_WID (0x1f << 16)
# define CRTC_V_SYNC_WID_SHIFT 16
# define CRTC_V_SYNC_POL (1 << 23)
#define CRTC2_V_SYNC_STRT_WID 0x030C
# define CRTC2_V_SYNC_STRT (0x7ff << 0)
# define CRTC2_V_SYNC_STRT_SHIFT 0
# define CRTC2_V_SYNC_WID (0x1f << 16)
# define CRTC2_V_SYNC_WID_SHIFT 16
# define CRTC2_V_SYNC_POL (1 << 23)
#define CRTC_VLINE_CRNT_VLINE 0x0210
# define CRTC_CRNT_VLINE_MASK (0x7ff << 16)
#define CRTC2_VLINE_CRNT_VLINE 0x0310
#define CRTC_CRNT_FRAME 0x0214
#define CRTC2_CRNT_FRAME 0x0314
#define CRTC_GUI_TRIG_VLINE 0x0218
#define CRTC2_GUI_TRIG_VLINE 0x0318
#define CRTC_DEBUG 0x021C
#define CRTC2_DEBUG 0x031C
#define CRTC_OFFSET_RIGHT 0x0220
#define CRTC_OFFSET 0x0224
#define CRTC2_OFFSET 0x0324
#define CRTC_OFFSET_CNTL 0x0228
# define CRTC_TILE_EN (1 << 15)
#define CRTC2_OFFSET_CNTL 0x0328
# define CRTC2_TILE_EN (1 << 15)
#define CRTC_PITCH 0x022C
#define CRTC2_PITCH 0x032C
#define TMDS_CRC 0x02a0
#define OVR_CLR 0x0230
#define OVR_WID_LEFT_RIGHT 0x0234
#define OVR_WID_TOP_BOTTOM 0x0238
#define DISPLAY_BASE_ADDR 0x023C
#define SNAPSHOT_VH_COUNTS 0x0240
#define SNAPSHOT_F_COUNT 0x0244
#define N_VIF_COUNT 0x0248
#define SNAPSHOT_VIF_COUNT 0x024C
#define FP_CRTC_H_TOTAL_DISP 0x0250
#define FP_CRTC2_H_TOTAL_DISP 0x0350
#define FP_CRTC_V_TOTAL_DISP 0x0254
#define FP_CRTC2_V_TOTAL_DISP 0x0354
# define FP_CRTC_H_TOTAL_MASK 0x000003ff
# define FP_CRTC_H_DISP_MASK 0x01ff0000
# define FP_CRTC_V_TOTAL_MASK 0x00000fff
# define FP_CRTC_V_DISP_MASK 0x0fff0000
# define FP_H_SYNC_STRT_CHAR_MASK 0x00001ff8
# define FP_H_SYNC_WID_MASK 0x003f0000
# define FP_V_SYNC_STRT_MASK 0x00000fff
# define FP_V_SYNC_WID_MASK 0x001f0000
# define FP_CRTC_H_TOTAL_SHIFT 0x00000000
# define FP_CRTC_H_DISP_SHIFT 0x00000010
# define FP_CRTC_V_TOTAL_SHIFT 0x00000000
# define FP_CRTC_V_DISP_SHIFT 0x00000010
# define FP_H_SYNC_STRT_CHAR_SHIFT 0x00000003
# define FP_H_SYNC_WID_SHIFT 0x00000010
# define FP_V_SYNC_STRT_SHIFT 0x00000000
# define FP_V_SYNC_WID_SHIFT 0x00000010
#define CRT_CRTC_H_SYNC_STRT_WID 0x0258
#define CRT_CRTC_V_SYNC_STRT_WID 0x025C
#define CUR_OFFSET 0x0260
#define CUR_HORZ_VERT_POSN 0x0264
#define CUR_HORZ_VERT_OFF 0x0268
/* CUR_OFFSET, CUR_HORZ_VERT_POSN, CUR_HORZ_VERT_OFF bit constants */
# define CUR_LOCK 0x80000000
#define CUR_CLR0 0x026C
#define CUR_CLR1 0x0270
#define CUR2_OFFSET 0x0360
#define CUR2_HORZ_VERT_POSN 0x0364
#define CUR2_HORZ_VERT_OFF 0x0368
# define CUR2_LOCK (1 << 31)
#define CUR2_CLR0 0x036c
#define CUR2_CLR1 0x0370
#define FP_HORZ_VERT_ACTIVE 0x0278
#define CRTC_MORE_CNTL 0x027C
#define DAC_EXT_CNTL 0x0280
#define FP_GEN_CNTL 0x0284
/* FP_GEN_CNTL bit constants */
# define FP_FPON (1 << 0)
# define FP_TMDS_EN (1 << 2)
# define FP_EN_TMDS (1 << 7)
# define FP_DETECT_SENSE (1 << 8)
# define FP_SEL_CRTC2 (1 << 13)
# define FP_CRTC_DONT_SHADOW_HPAR (1 << 15)
# define FP_CRTC_DONT_SHADOW_VPAR (1 << 16)
# define FP_CRTC_DONT_SHADOW_HEND (1 << 17)
# define FP_CRTC_USE_SHADOW_VEND (1 << 18)
# define FP_RMX_HVSYNC_CONTROL_EN (1 << 20)
# define FP_DFP_SYNC_SEL (1 << 21)
# define FP_CRTC_LOCK_8DOT (1 << 22)
# define FP_CRT_SYNC_SEL (1 << 23)
# define FP_USE_SHADOW_EN (1 << 24)
# define FP_CRT_SYNC_ALT (1 << 26)
#define FP2_GEN_CNTL 0x0288
/* FP2_GEN_CNTL bit constants */
# define FP2_FPON (1 << 0)
# define FP2_TMDS_EN (1 << 2)
# define FP2_EN_TMDS (1 << 7)
# define FP2_DETECT_SENSE (1 << 8)
# define FP2_SEL_CRTC2 (1 << 13)
# define FP2_FP_POL (1 << 16)
# define FP2_LP_POL (1 << 17)
# define FP2_SCK_POL (1 << 18)
# define FP2_LCD_CNTL_MASK (7 << 19)
# define FP2_PAD_FLOP_EN (1 << 22)
# define FP2_CRC_EN (1 << 23)
# define FP2_CRC_READ_EN (1 << 24)
#define FP_HORZ_STRETCH 0x028C
#define FP_HORZ2_STRETCH 0x038C
# define HORZ_STRETCH_RATIO_MASK 0xffff
# define HORZ_STRETCH_RATIO_MAX 4096
# define HORZ_PANEL_SIZE (0x1ff << 16)
# define HORZ_PANEL_SHIFT 16
# define HORZ_STRETCH_PIXREP (0 << 25)
# define HORZ_STRETCH_BLEND (1 << 26)
# define HORZ_STRETCH_ENABLE (1 << 25)
# define HORZ_AUTO_RATIO (1 << 27)
# define HORZ_FP_LOOP_STRETCH (0x7 << 28)
# define HORZ_AUTO_RATIO_INC (1 << 31)
#define FP_VERT_STRETCH 0x0290
#define FP_VERT2_STRETCH 0x0390
# define VERT_PANEL_SIZE (0xfff << 12)
# define VERT_PANEL_SHIFT 12
# define VERT_STRETCH_RATIO_MASK 0xfff
# define VERT_STRETCH_RATIO_SHIFT 0
# define VERT_STRETCH_RATIO_MAX 4096
# define VERT_STRETCH_ENABLE (1 << 25)
# define VERT_STRETCH_LINEREP (0 << 26)
# define VERT_STRETCH_BLEND (1 << 26)
# define VERT_AUTO_RATIO_EN (1 << 27)
# define VERT_STRETCH_RESERVED 0xf1000000
#define FP_H_SYNC_STRT_WID 0x02C4
#define FP_H2_SYNC_STRT_WID 0x03C4
#define FP_V_SYNC_STRT_WID 0x02C8
#define FP_V2_SYNC_STRT_WID 0x03C8
#define LVDS_GEN_CNTL 0x02d0
# define LVDS_ON (1 << 0)
# define LVDS_DISPLAY_DIS (1 << 1)
# define LVDS_PANEL_TYPE (1 << 2)
# define LVDS_PANEL_FORMAT (1 << 3)
# define LVDS_EN (1 << 7)
# define LVDS_DIGON (1 << 18)
# define LVDS_BLON (1 << 19)
# define LVDS_SEL_CRTC2 (1 << 23)
#define LVDS_PLL_CNTL 0x02d4
# define HSYNC_DELAY_SHIFT 28
# define HSYNC_DELAY_MASK (0xf << 28)
#define AUX_WINDOW_HORZ_CNTL 0x02D8
#define AUX_WINDOW_VERT_CNTL 0x02DC
#define DDA_CONFIG 0x02e0
#define DDA_ON_OFF 0x02e4
#define GRPH_BUFFER_CNTL 0x02F0
#define VGA_BUFFER_CNTL 0x02F4
/* first overlay unit (there is only one) */
#define OV0_Y_X_START 0x0400
#define OV0_Y_X_END 0x0404
#define OV0_PIPELINE_CNTL 0x0408
#define OV0_EXCLUSIVE_HORZ 0x0408
# define EXCL_HORZ_START_MASK 0x000000ff
# define EXCL_HORZ_END_MASK 0x0000ff00
# define EXCL_HORZ_BACK_PORCH_MASK 0x00ff0000
# define EXCL_HORZ_EXCLUSIVE_EN 0x80000000
#define OV0_EXCLUSIVE_VERT 0x040C
# define EXCL_VERT_START_MASK 0x000003ff
# define EXCL_VERT_END_MASK 0x03ff0000
#define OV0_REG_LOAD_CNTL 0x0410
# define REG_LD_CTL_LOCK 0x00000001L
# define REG_LD_CTL_VBLANK_DURING_LOCK 0x00000002L
# define REG_LD_CTL_STALL_GUI_UNTIL_FLIP 0x00000004L
# define REG_LD_CTL_LOCK_READBACK 0x00000008L
#define OV0_SCALE_CNTL 0x0420
# define SCALER_PIX_EXPAND 0x00000001L
# define SCALER_Y2R_TEMP 0x00000002L
#ifdef RAGE128
# define SCALER_HORZ_PICK_NEAREST 0x00000003L
# define SCALER_VERT_PICK_NEAREST 0x00000004L
#else
# define SCALER_HORZ_PICK_NEAREST 0x00000004L
# define SCALER_VERT_PICK_NEAREST 0x00000008L
#endif
# define SCALER_SIGNED_UV 0x00000010L
# define SCALER_GAMMA_SEL_MASK 0x00000060L
# define SCALER_GAMMA_SEL_BRIGHT 0x00000000L
# define SCALER_GAMMA_SEL_G22 0x00000020L
# define SCALER_GAMMA_SEL_G18 0x00000040L
# define SCALER_GAMMA_SEL_G14 0x00000060L
# define SCALER_COMCORE_SHIFT_UP_ONE 0x00000080L
# define SCALER_SURFAC_FORMAT 0x00000f00L
# define SCALER_SOURCE_UNK0 0x00000000L /* 2 bpp ??? */
# define SCALER_SOURCE_UNK1 0x00000100L /* 4 bpp ??? */
# define SCALER_SOURCE_UNK2 0x00000200L /* 8 bpp ??? */
# define SCALER_SOURCE_15BPP 0x00000300L
# define SCALER_SOURCE_16BPP 0x00000400L
# define SCALER_SOURCE_24BPP 0x00000500L
# define SCALER_SOURCE_32BPP 0x00000600L
# define SCALER_SOURCE_UNK3 0x00000700L /* 8BPP_RGB332 ??? */
# define SCALER_SOURCE_UNK4 0x00000800L /* 8BPP_Y8 ??? */
# define SCALER_SOURCE_YUV9 0x00000900L /* 8BPP_RGB8 */
# define SCALER_SOURCE_YUV12 0x00000A00L
# define SCALER_SOURCE_VYUY422 0x00000B00L
# define SCALER_SOURCE_YVYU422 0x00000C00L
# define SCALER_SOURCE_UNK5 0x00000D00L /* ??? */
# define SCALER_SOURCE_UNK6 0x00000E00L /* 32BPP_AYUV444 */
# define SCALER_SOURCE_UNK7 0x00000F00L /* 16BPP_ARGB4444 */
# define SCALER_ADAPTIVE_DEINT 0x00001000L
# define R200_SCALER_TEMPORAL_DEINT 0x00002000L
# define SCALER_UNKNOWN_FLAG1 0x00004000L /* ??? */
# define SCALER_SMART_SWITCH 0x00008000L
#ifdef RAGE128
# define SCALER_BURST_PER_PLANE 0x00ff0000L
#else
# define SCALER_BURST_PER_PLANE 0x007f0000L
#endif
# define SCALER_DOUBLE_BUFFER 0x01000000L
# define SCALER_UNKNOWN_FLAG3 0x02000000L /* ??? */
# define SCALER_UNKNOWN_FLAG4 0x04000000L /* ??? */
# define SCALER_DIS_LIMIT 0x08000000L
# define SCALER_PRG_LOAD_START 0x10000000L
# define SCALER_INT_EMU 0x20000000L
# define SCALER_ENABLE 0x40000000L
# define SCALER_SOFT_RESET 0x80000000L
#define OV0_V_INC 0x0424
#define OV0_P1_V_ACCUM_INIT 0x0428
# define OV0_P1_MAX_LN_IN_PER_LN_OUT 0x00000003L
# define OV0_P1_V_ACCUM_INIT_MASK 0x01ff8000L
#define OV0_P23_V_ACCUM_INIT 0x042C
# define OV0_P23_MAX_LN_IN_PER_LN_OUT 0x00000003L
# define OV0_P23_V_ACCUM_INIT_MASK 0x01ff8000L
#define OV0_P1_BLANK_LINES_AT_TOP 0x0430
# define P1_BLNK_LN_AT_TOP_M1_MASK 0x00000fffL
# define P1_ACTIVE_LINES_M1 0x0fff0000L
#define OV0_P23_BLANK_LINES_AT_TOP 0x0434
# define P23_BLNK_LN_AT_TOP_M1_MASK 0x000007ffL
# define P23_ACTIVE_LINES_M1 0x07ff0000L
#ifndef RAGE128
#define OV0_BASE_ADDR 0x043C
#endif
#define OV0_VID_BUF0_BASE_ADRS 0x0440
# define VIF_BUF0_PITCH_SEL 0x00000001L
# define VIF_BUF0_TILE_ADRS 0x00000002L
# define VIF_BUF0_BASE_ADRS_MASK 0x03fffff0L
# define VIF_BUF0_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF1_BASE_ADRS 0x0444
# define VIF_BUF1_PITCH_SEL 0x00000001L
# define VIF_BUF1_TILE_ADRS 0x00000002L
# define VIF_BUF1_BASE_ADRS_MASK 0x03fffff0L
# define VIF_BUF1_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF2_BASE_ADRS 0x0448
# define VIF_BUF2_PITCH_SEL 0x00000001L
# define VIF_BUF2_TILE_ADRS 0x00000002L
# define VIF_BUF2_BASE_ADRS_MASK 0x03fffff0L
# define VIF_BUF2_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF3_BASE_ADRS 0x044C
# define VIF_BUF3_PITCH_SEL 0x00000001L
# define VIF_BUF3_TILE_ADRS 0x00000002L
# define VIF_BUF3_BASE_ADRS_MASK 0x03fffff0L
# define VIF_BUF3_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF4_BASE_ADRS 0x0450
# define VIF_BUF4_PITCH_SEL 0x00000001L
# define VIF_BUF4_TILE_ADRS 0x00000002L
# define VIF_BUF4_BASE_ADRS_MASK 0x03fffff0L
# define VIF_BUF4_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF5_BASE_ADRS 0x0454
# define VIF_BUF5_PITCH_SEL 0x00000001L
# define VIF_BUF5_TILE_ADRS 0x00000002L
# define VIF_BUF5_BASE_ADRS_MASK 0x03fffff0L
# define VIF_BUF5_1ST_LINE_LSBS_MASK 0x48000000L
#define OV0_VID_BUF_PITCH0_VALUE 0x0460
#define OV0_VID_BUF_PITCH1_VALUE 0x0464
#define OV0_AUTO_FLIP_CNTL 0x0470
# define OV0_AUTO_FLIP_CNTL_SOFT_BUF_NUM 0x00000007
# define OV0_AUTO_FLIP_CNTL_SOFT_REPEAT_FIELD 0x00000008
# define OV0_AUTO_FLIP_CNTL_SOFT_BUF_ODD 0x00000010
# define OV0_AUTO_FLIP_CNTL_IGNORE_REPEAT_FIELD 0x00000020
# define OV0_AUTO_FLIP_CNTL_SOFT_EOF_TOGGLE 0x00000040
# define OV0_AUTO_FLIP_CNTL_VID_PORT_SELECT 0x00000300
# define OV0_AUTO_FLIP_CNTL_P1_FIRST_LINE_EVEN 0x00010000
# define OV0_AUTO_FLIP_CNTL_SHIFT_EVEN_DOWN 0x00040000
# define OV0_AUTO_FLIP_CNTL_SHIFT_ODD_DOWN 0x00080000
# define OV0_AUTO_FLIP_CNTL_FIELD_POL_SOURCE 0x00800000
#define OV0_DEINTERLACE_PATTERN 0x0474
#define OV0_SUBMIT_HISTORY 0x0478
#define OV0_H_INC 0x0480
#define OV0_STEP_BY 0x0484
#define OV0_P1_H_ACCUM_INIT 0x0488
#define OV0_P23_H_ACCUM_INIT 0x048C
#define OV0_P1_X_START_END 0x0494
#define OV0_P2_X_START_END 0x0498
#define OV0_P3_X_START_END 0x049C
#define OV0_FILTER_CNTL 0x04A0
# define FILTER_PROGRAMMABLE_COEF 0x00000000
# define FILTER_HARDCODED_COEF 0x0000000F
# define FILTER_COEF_MASK 0x0000000F
/* other values allow us use hardcoded coefs for Y and
programmable for UV that's nosense. */
/*
Top quality 4x4-tap filtered vertical and horizontal scaler.
It allows up to 64:1 upscaling and downscaling without
performance or quality degradation.
*/
#define OV0_FOUR_TAP_COEF_0 0x04B0
#define OV0_FOUR_TAP_COEF_1 0x04B4
#define OV0_FOUR_TAP_COEF_2 0x04B8
#define OV0_FOUR_TAP_COEF_3 0x04BC
#define OV0_FOUR_TAP_COEF_4 0x04C0
#define OV0_FLAG_CNTL 0x04DC
#ifdef RAGE128
#define OV0_COLOUR_CNTL 0x04E0
# define COLOUR_CNTL_BRIGHTNESS 0x0000007F
# define COLOUR_CNTL_SATURATION 0x001F1F00
#else
/* NB: radeons have no COLOUR_CNTL register */
#define OV0_SLICE_CNTL 0x04E0
# define SLICE_CNTL_DISABLE 0x40000000
#endif
/* Video and graphics keys allow alpha blending, color correction
and many other video effects */
#define OV0_VID_KEY_CLR 0x04E4
#define OV0_VID_KEY_MSK 0x04E8
#define OV0_GRAPHICS_KEY_CLR 0x04EC
#define OV0_GRAPHICS_KEY_MSK 0x04F0
#define OV0_KEY_CNTL 0x04F4
# define VIDEO_KEY_FN_MASK 0x00000007L
# define VIDEO_KEY_FN_FALSE 0x00000000L
# define VIDEO_KEY_FN_TRUE 0x00000001L
# define VIDEO_KEY_FN_EQ 0x00000004L
# define VIDEO_KEY_FN_NE 0x00000005L
# define GRAPHIC_KEY_FN_MASK 0x00000070L
# define GRAPHIC_KEY_FN_FALSE 0x00000000L
# define GRAPHIC_KEY_FN_TRUE 0x00000010L
# define GRAPHIC_KEY_FN_EQ 0x00000040L
# define GRAPHIC_KEY_FN_NE 0x00000050L
# define CMP_MIX_MASK 0x00000100L
# define CMP_MIX_OR 0x00000000L
# define CMP_MIX_AND 0x00000100L
#define OV0_TEST 0x04F8
#define OV0_LIN_TRANS_A 0x0D20
#define OV0_LIN_TRANS_B 0x0D24
#define OV0_LIN_TRANS_C 0x0D28
#define OV0_LIN_TRANS_D 0x0D2C
#define OV0_LIN_TRANS_E 0x0D30
#define OV0_LIN_TRANS_F 0x0D34
#define OV0_GAMMA_0_F 0x0D40
#define OV0_GAMMA_10_1F 0x0D44
#define OV0_GAMMA_20_3F 0x0D48
#define OV0_GAMMA_40_7F 0x0D4C
/* These registers exist on R200 only */
#define OV0_GAMMA_80_BF 0x0E00
#define OV0_GAMMA_C0_FF 0x0E04
#define OV0_GAMMA_100_13F 0x0E08
#define OV0_GAMMA_140_17F 0x0E0C
#define OV0_GAMMA_180_1BF 0x0E10
#define OV0_GAMMA_1C0_1FF 0x0E14
#define OV0_GAMMA_200_23F 0x0E18
#define OV0_GAMMA_240_27F 0x0E1C
#define OV0_GAMMA_280_2BF 0x0E20
#define OV0_GAMMA_2C0_2FF 0x0E24
#define OV0_GAMMA_300_33F 0x0E28
#define OV0_GAMMA_340_37F 0x0E2C
/* End of R200 specific definitions */
#define OV0_GAMMA_380_3BF 0x0D50
#define OV0_GAMMA_3C0_3FF 0x0D54
/*
IDCT ENGINE:
It's MPEG-2 hardware decoder which incorporates run-level decode, de-zigzag
and IDCT into an IDCT engine to complement the motion compensation engine.
*/
#define IDCT_RUNS 0x1F80
#define IDCT_LEVELS 0x1F84
#define IDCT_AUTH_CONTROL 0x1F88
#define IDCT_AUTH 0x1F8C
#define IDCT_CONTROL 0x1FBC
#define SE_MC_SRC2_CNTL 0x19D4
#define SE_MC_SRC1_CNTL 0x19D8
#define SE_MC_DST_CNTL 0x19DC
#define SE_MC_CNTL_START 0x19E0
#ifndef RAGE128
#define SE_MC_BUF_BASE 0x19E4
#define PP_MC_CONTEXT 0x19E8
#define PP_MISC 0x1C14
#endif
/*
SUBPICTURE UNIT:
Decompressing, scaling and alpha blending the compressed bitmap on the fly.
Provide optimal DVD subpicture qualtity.
*/
#define SUBPIC_CNTL 0x0540
#define SUBPIC_DEFCOLCON 0x0544
#define SUBPIC_Y_X_START 0x054C
#define SUBPIC_Y_X_END 0x0550
#define SUBPIC_V_INC 0x0554
#define SUBPIC_H_INC 0x0558
#define SUBPIC_BUF0_OFFSET 0x055C
#define SUBPIC_BUF1_OFFSET 0x0560
#define SUBPIC_LC0_OFFSET 0x0564
#define SUBPIC_LC1_OFFSET 0x0568
#define SUBPIC_PITCH 0x056C
#define SUBPIC_BTN_HLI_COLCON 0x0570
#define SUBPIC_BTN_HLI_Y_X_START 0x0574
#define SUBPIC_BTN_HLI_Y_X_END 0x0578
#define SUBPIC_PALETTE_INDEX 0x057C
#define SUBPIC_PALETTE_DATA 0x0580
#define SUBPIC_H_ACCUM_INIT 0x0584
#define SUBPIC_V_ACCUM_INIT 0x0588
#define CP_RB_BASE 0x0700
#define CP_RB_CNTL 0x0704
#define CP_RB_RPTR_ADDR 0x070C
#define CP_RB_RPTR 0x0710
#define CP_RB_WPTR 0x0714
#define CP_RB_WPTR_DELAY 0x0718
#define CP_IB_BASE 0x0738
#define CP_IB_BUFSZ 0x073C
#define CP_CSQ_CNTL 0x0740
#define SCRATCH_UMSK 0x0770
#define SCRATCH_ADDR 0x0774
#define DMA_GUI_TABLE_ADDR 0x0780
#define DMA_GUI_SRC_ADDR 0x0784
#define DMA_GUI_DST_ADDR 0x0788
#define DMA_GUI_COMMAND 0x078C
#define DMA_GUI_STATUS 0x0790
#define DMA_GUI_ACT_DSCRPTR 0x0794
#define DMA_VID_TABLE_ADDR 0x07A0
#define DMA_VID_SRC_ADDR 0x07A4
#define DMA_VID_DST_ADDR 0x07A8
#define DMA_VID_COMMAND 0x07AC
#define DMA_VID_STATUS 0x07B0
#define DMA_VID_ACT_DSCRPTR 0x07B4
#define CP_ME_CNTL 0x07D0
#define CP_ME_RAM_ADDR 0x07D4
#define CP_ME_RAM_RADDR 0x07D8
#define CP_ME_RAM_DATAH 0x07DC
#define CP_ME_RAM_DATAL 0x07E0
#define CP_CSQ_ADDR 0x07F0
#define CP_CSQ_DATA 0x07F4
#define CP_CSQ_STAT 0x07F8
#define DISP_MISC_CNTL 0x0D00
# define SOFT_RESET_GRPH_PP (1 << 0)
#define DAC_MACRO_CNTL 0x0D04
#define DISP_PWR_MAN 0x0D08
#define DISP_TEST_DEBUG_CNTL 0x0D10
#define DISP_HW_DEBUG 0x0D14
#define DAC_CRC_SIG1 0x0D18
#define DAC_CRC_SIG2 0x0D1C
/* first capture unit */
#define VID_BUFFER_CONTROL 0x0900
#define CAP_INT_CNTL 0x0908
#define CAP_INT_STATUS 0x090C
#define FCP_CNTL 0x0910
#define CAP0_BUF0_OFFSET 0x0920
#define CAP0_BUF1_OFFSET 0x0924
#define CAP0_BUF0_EVEN_OFFSET 0x0928
#define CAP0_BUF1_EVEN_OFFSET 0x092C
#define CAP0_BUF_PITCH 0x0930
#define CAP0_V_WINDOW 0x0934
#define CAP0_H_WINDOW 0x0938
#define CAP0_VBI0_OFFSET 0x093C
#define CAP0_VBI1_OFFSET 0x0940
#define CAP0_VBI_V_WINDOW 0x0944
#define CAP0_VBI_H_WINDOW 0x0948
#define CAP0_PORT_MODE_CNTL 0x094C
#define CAP0_TRIG_CNTL 0x0950
#define CAP0_DEBUG 0x0954
#define CAP0_CONFIG 0x0958
# define CAP0_CONFIG_CONTINUOS 0x00000001
# define CAP0_CONFIG_START_FIELD_EVEN 0x00000002
# define CAP0_CONFIG_START_BUF_GET 0x00000004
# define CAP0_CONFIG_START_BUF_SET 0x00000008
# define CAP0_CONFIG_BUF_TYPE_ALT 0x00000010
# define CAP0_CONFIG_BUF_TYPE_FRAME 0x00000020
# define CAP0_CONFIG_ONESHOT_MODE_FRAME 0x00000040
# define CAP0_CONFIG_BUF_MODE_DOUBLE 0x00000080
# define CAP0_CONFIG_BUF_MODE_TRIPLE 0x00000100
# define CAP0_CONFIG_MIRROR_EN 0x00000200
# define CAP0_CONFIG_ONESHOT_MIRROR_EN 0x00000400
# define CAP0_CONFIG_VIDEO_SIGNED_UV 0x00000800
# define CAP0_CONFIG_ANC_DECODE_EN 0x00001000
# define CAP0_CONFIG_VBI_EN 0x00002000
# define CAP0_CONFIG_SOFT_PULL_DOWN_EN 0x00004000
# define CAP0_CONFIG_VIP_EXTEND_FLAG_EN 0x00008000
# define CAP0_CONFIG_FAKE_FIELD_EN 0x00010000
# define CAP0_CONFIG_ODD_ONE_MORE_LINE 0x00020000
# define CAP0_CONFIG_EVEN_ONE_MORE_LINE 0x00040000
# define CAP0_CONFIG_HORZ_DIVIDE_2 0x00080000
# define CAP0_CONFIG_HORZ_DIVIDE_4 0x00100000
# define CAP0_CONFIG_VERT_DIVIDE_2 0x00200000
# define CAP0_CONFIG_VERT_DIVIDE_4 0x00400000
# define CAP0_CONFIG_FORMAT_BROOKTREE 0x00000000
# define CAP0_CONFIG_FORMAT_CCIR656 0x00800000
# define CAP0_CONFIG_FORMAT_ZV 0x01000000
# define CAP0_CONFIG_FORMAT_VIP 0x01800000
# define CAP0_CONFIG_FORMAT_TRANSPORT 0x02000000
# define CAP0_CONFIG_HORZ_DECIMATOR 0x04000000
# define CAP0_CONFIG_VIDEO_IN_YVYU422 0x00000000
# define CAP0_CONFIG_VIDEO_IN_VYUY422 0x20000000
# define CAP0_CONFIG_VBI_DIVIDE_2 0x40000000
# define CAP0_CONFIG_VBI_DIVIDE_4 0x80000000
#define CAP0_ANC_ODD_OFFSET 0x095C
#define CAP0_ANC_EVEN_OFFSET 0x0960
#define CAP0_ANC_H_WINDOW 0x0964
#define CAP0_VIDEO_SYNC_TEST 0x0968
#define CAP0_ONESHOT_BUF_OFFSET 0x096C
#define CAP0_BUF_STATUS 0x0970
#ifdef RAGE128
#define CAP0_DWNSC_XRATIO 0x0978
#define CAP0_XSHARPNESS 0x097C
#else
/* #define CAP0_DWNSC_XRATIO 0x0978 */
/* #define CAP0_XSHARPNESS 0x097C */
#endif
#define CAP0_VBI2_OFFSET 0x0980
#define CAP0_VBI3_OFFSET 0x0984
#define CAP0_ANC2_OFFSET 0x0988
#define CAP0_ANC3_OFFSET 0x098C
/* second capture unit */
#define CAP1_BUF0_OFFSET 0x0990
#define CAP1_BUF1_OFFSET 0x0994
#define CAP1_BUF0_EVEN_OFFSET 0x0998
#define CAP1_BUF1_EVEN_OFFSET 0x099C
#define CAP1_BUF_PITCH 0x09A0
#define CAP1_V_WINDOW 0x09A4
#define CAP1_H_WINDOW 0x09A8
#define CAP1_VBI_ODD_OFFSET 0x09AC
#define CAP1_VBI_EVEN_OFFSET 0x09B0
#define CAP1_VBI_V_WINDOW 0x09B4
#define CAP1_VBI_H_WINDOW 0x09B8
#define CAP1_PORT_MODE_CNTL 0x09BC
#define CAP1_TRIG_CNTL 0x09C0
#define CAP1_DEBUG 0x09C4
#define CAP1_CONFIG 0x09C8
#define CAP1_ANC_ODD_OFFSET 0x09CC
#define CAP1_ANC_EVEN_OFFSET 0x09D0
#define CAP1_ANC_H_WINDOW 0x09D4
#define CAP1_VIDEO_SYNC_TEST 0x09D8
#define CAP1_ONESHOT_BUF_OFFSET 0x09DC
#define CAP1_BUF_STATUS 0x09E0
#define CAP1_DWNSC_XRATIO 0x09E8
#define CAP1_XSHARPNESS 0x09EC
#define DISP_MERGE_CNTL 0x0D60
#define DISP_OUTPUT_CNTL 0x0D64
# define DISP_DAC_SOURCE_MASK 0x03
# define DISP_DAC_SOURCE_CRTC2 0x01
#define DISP_LIN_TRANS_GRPH_A 0x0D80
#define DISP_LIN_TRANS_GRPH_B 0x0D84
#define DISP_LIN_TRANS_GRPH_C 0x0D88
#define DISP_LIN_TRANS_GRPH_D 0x0D8C
#define DISP_LIN_TRANS_GRPH_E 0x0D90
#define DISP_LIN_TRANS_GRPH_F 0x0D94
#define DISP_LIN_TRANS_VID_A 0x0D98
#define DISP_LIN_TRANS_VID_B 0x0D9C
#define DISP_LIN_TRANS_VID_C 0x0DA0
#define DISP_LIN_TRANS_VID_D 0x0DA4
#define DISP_LIN_TRANS_VID_E 0x0DA8
#define DISP_LIN_TRANS_VID_F 0x0DAC
#define RMX_HORZ_FILTER_0TAP_COEF 0x0DB0
#define RMX_HORZ_FILTER_1TAP_COEF 0x0DB4
#define RMX_HORZ_FILTER_2TAP_COEF 0x0DB8
#define RMX_HORZ_PHASE 0x0DBC
#define DAC_EMBEDDED_SYNC_CNTL 0x0DC0
#define DAC_BROAD_PULSE 0x0DC4
#define DAC_SKEW_CLKS 0x0DC8
#define DAC_INCR 0x0DCC
#define DAC_NEG_SYNC_LEVEL 0x0DD0
#define DAC_POS_SYNC_LEVEL 0x0DD4
#define DAC_BLANK_LEVEL 0x0DD8
#define CLOCK_CNTL_INDEX 0x0008
/* CLOCK_CNTL_INDEX bit constants */
# define PLL_WR_EN 0x00000080
# define PLL_DIV_SEL (3 << 8)
# define PLL2_DIV_SEL_MASK ~(3 << 8)
#define CLOCK_CNTL_DATA 0x000C
#define CP_RB_CNTL 0x0704
#define CP_RB_BASE 0x0700
#define CP_RB_RPTR_ADDR 0x070C
#define CP_RB_RPTR 0x0710
#define CP_RB_WPTR 0x0714
#define CP_RB_WPTR_DELAY 0x0718
#define CP_IB_BASE 0x0738
#define CP_IB_BUFSZ 0x073C
#define SCRATCH_REG0 0x15E0
#define GUI_SCRATCH_REG0 0x15E0
#define SCRATCH_REG1 0x15E4
#define GUI_SCRATCH_REG1 0x15E4
#define SCRATCH_REG2 0x15E8
#define GUI_SCRATCH_REG2 0x15E8
#define SCRATCH_REG3 0x15EC
#define GUI_SCRATCH_REG3 0x15EC
#define SCRATCH_REG4 0x15F0
#define GUI_SCRATCH_REG4 0x15F0
#define SCRATCH_REG5 0x15F4
#define GUI_SCRATCH_REG5 0x15F4
#define SCRATCH_UMSK 0x0770
#define SCRATCH_ADDR 0x0774
#define DP_BRUSH_FRGD_CLR 0x147C
#define DP_BRUSH_BKGD_CLR 0x1478
#define DST_LINE_START 0x1600
#define DST_LINE_END 0x1604
#define SRC_OFFSET 0x15AC
#define SRC_PITCH 0x15B0
#define SRC_TILE 0x1704
#define SRC_PITCH_OFFSET 0x1428
#define SRC_X 0x1414
#define SRC_Y 0x1418
#define DST_WIDTH_X 0x1588
#define DST_HEIGHT_WIDTH_8 0x158C
#define SRC_X_Y 0x1590
#define SRC_Y_X 0x1434
#define DST_Y_X 0x1438
#define DST_WIDTH_HEIGHT 0x1598
#define DST_HEIGHT_WIDTH 0x143c
#define SRC_CLUT_ADDRESS 0x1780
#define SRC_CLUT_DATA 0x1784
#define SRC_CLUT_DATA_RD 0x1788
#define HOST_DATA0 0x17C0
#define HOST_DATA1 0x17C4
#define HOST_DATA2 0x17C8
#define HOST_DATA3 0x17CC
#define HOST_DATA4 0x17D0
#define HOST_DATA5 0x17D4
#define HOST_DATA6 0x17D8
#define HOST_DATA7 0x17DC
#define HOST_DATA_LAST 0x17E0
#define DP_SRC_ENDIAN 0x15D4
#define DP_SRC_FRGD_CLR 0x15D8
#define DP_SRC_BKGD_CLR 0x15DC
#define DP_WRITE_MASK 0x16cc
#define SC_LEFT 0x1640
#define SC_RIGHT 0x1644
#define SC_TOP 0x1648
#define SC_BOTTOM 0x164C
#define SRC_SC_RIGHT 0x1654
#define SRC_SC_BOTTOM 0x165C
#define DP_CNTL 0x16C0
/* DP_CNTL bit constants */
# define DST_X_RIGHT_TO_LEFT 0x00000000
# define DST_X_LEFT_TO_RIGHT 0x00000001
# define DST_Y_BOTTOM_TO_TOP 0x00000000
# define DST_Y_TOP_TO_BOTTOM 0x00000002
# define DST_X_MAJOR 0x00000000
# define DST_Y_MAJOR 0x00000004
# define DST_X_TILE 0x00000008
# define DST_Y_TILE 0x00000010
# define DST_LAST_PEL 0x00000020
# define DST_TRAIL_X_RIGHT_TO_LEFT 0x00000000
# define DST_TRAIL_X_LEFT_TO_RIGHT 0x00000040
# define DST_TRAP_FILL_RIGHT_TO_LEFT 0x00000000
# define DST_TRAP_FILL_LEFT_TO_RIGHT 0x00000080
# define DST_BRES_SIGN 0x00000100
# define DST_HOST_BIG_ENDIAN_EN 0x00000200
# define DST_POLYLINE_NONLAST 0x00008000
# define DST_RASTER_STALL 0x00010000
# define DST_POLY_EDGE 0x00040000
#define DP_CNTL_XDIR_YDIR_YMAJOR 0x16D0
/* DP_CNTL_XDIR_YDIR_YMAJOR bit constants (short version of DP_CNTL) */
# define DST_X_MAJOR_S 0x00000000
# define DST_Y_MAJOR_S 0x00000001
# define DST_Y_BOTTOM_TO_TOP_S 0x00000000
# define DST_Y_TOP_TO_BOTTOM_S 0x00008000
# define DST_X_RIGHT_TO_LEFT_S 0x00000000
# define DST_X_LEFT_TO_RIGHT_S 0x80000000
#define DP_DATATYPE 0x16C4
/* DP_DATATYPE bit constants */
# define DST_8BPP 0x00000002
# define DST_15BPP 0x00000003
# define DST_16BPP 0x00000004
# define DST_24BPP 0x00000005
# define DST_32BPP 0x00000006
# define DST_8BPP_RGB332 0x00000007
# define DST_8BPP_Y8 0x00000008
# define DST_8BPP_RGB8 0x00000009
# define DST_16BPP_VYUY422 0x0000000b
# define DST_16BPP_YVYU422 0x0000000c
# define DST_32BPP_AYUV444 0x0000000e
# define DST_16BPP_ARGB4444 0x0000000f
# define BRUSH_SOLIDCOLOR 0x00000d00
# define SRC_MONO 0x00000000
# define SRC_MONO_LBKGD 0x00010000
# define SRC_DSTCOLOR 0x00030000
# define BYTE_ORDER_MSB_TO_LSB 0x00000000
# define BYTE_ORDER_LSB_TO_MSB 0x40000000
# define DP_CONVERSION_TEMP 0x80000000
# define HOST_BIG_ENDIAN_EN (1 << 29)
#define DP_MIX 0x16C8
/* DP_MIX bit constants */
# define DP_SRC_RECT 0x00000200
# define DP_SRC_HOST 0x00000300
# define DP_SRC_HOST_BYTEALIGN 0x00000400
#define DP_WRITE_MSK 0x16CC
#define DP_XOP 0x17F8
#define CLR_CMP_CLR_SRC 0x15C4
#define CLR_CMP_CLR_DST 0x15C8
#define CLR_CMP_CNTL 0x15C0
/* CLR_CMP_CNTL bit constants */
# define COMPARE_SRC_FALSE 0x00000000
# define COMPARE_SRC_TRUE 0x00000001
# define COMPARE_SRC_NOT_EQUAL 0x00000004
# define COMPARE_SRC_EQUAL 0x00000005
# define COMPARE_SRC_EQUAL_FLIP 0x00000007
# define COMPARE_DST_FALSE 0x00000000
# define COMPARE_DST_TRUE 0x00000100
# define COMPARE_DST_NOT_EQUAL 0x00000400
# define COMPARE_DST_EQUAL 0x00000500
# define COMPARE_DESTINATION 0x00000000
# define COMPARE_SOURCE 0x01000000
# define COMPARE_SRC_AND_DST 0x02000000
#define CLR_CMP_MSK 0x15CC
#define DSTCACHE_MODE 0x1710
#define DSTCACHE_CTLSTAT 0x1714
/* DSTCACHE_CTLSTAT bit constants */
# define RB2D_DC_FLUSH (3 << 0)
# define RB2D_DC_FLUSH_ALL 0xf
# define RB2D_DC_BUSY (1 << 31)
#define DEFAULT_OFFSET 0x16e0
#define DEFAULT_PITCH_OFFSET 0x16E0
#define DEFAULT_SC_BOTTOM_RIGHT 0x16E8
/* DEFAULT_SC_BOTTOM_RIGHT bit constants */
# define DEFAULT_SC_RIGHT_MAX (0x1fff << 0)
# define DEFAULT_SC_BOTTOM_MAX (0x1fff << 16)
#define DP_GUI_MASTER_CNTL 0x146C
/* DP_GUI_MASTER_CNTL bit constants */
# define GMC_SRC_PITCH_OFFSET_DEFAULT 0x00000000
# define GMC_SRC_PITCH_OFFSET_LEAVE 0x00000001
# define GMC_DST_PITCH_OFFSET_DEFAULT 0x00000000
# define GMC_DST_PITCH_OFFSET_LEAVE 0x00000002
# define GMC_SRC_CLIP_DEFAULT 0x00000000
# define GMC_SRC_CLIP_LEAVE 0x00000004
# define GMC_DST_CLIP_DEFAULT 0x00000000
# define GMC_DST_CLIP_LEAVE 0x00000008
# define GMC_BRUSH_8x8MONO 0x00000000
# define GMC_BRUSH_8x8MONO_LBKGD 0x00000010
# define GMC_BRUSH_8x1MONO 0x00000020
# define GMC_BRUSH_8x1MONO_LBKGD 0x00000030
# define GMC_BRUSH_1x8MONO 0x00000040
# define GMC_BRUSH_1x8MONO_LBKGD 0x00000050
# define GMC_BRUSH_32x1MONO 0x00000060
# define GMC_BRUSH_32x1MONO_LBKGD 0x00000070
# define GMC_BRUSH_32x32MONO 0x00000080
# define GMC_BRUSH_32x32MONO_LBKGD 0x00000090
# define GMC_BRUSH_8x8COLOR 0x000000a0
# define GMC_BRUSH_8x1COLOR 0x000000b0
# define GMC_BRUSH_1x8COLOR 0x000000c0
# define GMC_BRUSH_SOLID_COLOR 0x000000d0
# define GMC_DST_8BPP 0x00000200
# define GMC_DST_15BPP 0x00000300
# define GMC_DST_16BPP 0x00000400
# define GMC_DST_24BPP 0x00000500
# define GMC_DST_32BPP 0x00000600
# define GMC_DST_8BPP_RGB332 0x00000700
# define GMC_DST_8BPP_Y8 0x00000800
# define GMC_DST_8BPP_RGB8 0x00000900
# define GMC_DST_16BPP_VYUY422 0x00000b00
# define GMC_DST_16BPP_YVYU422 0x00000c00
# define GMC_DST_32BPP_AYUV444 0x00000e00
# define GMC_DST_16BPP_ARGB4444 0x00000f00
# define GMC_SRC_MONO 0x00000000
# define GMC_SRC_MONO_LBKGD 0x00001000
# define GMC_SRC_DSTCOLOR 0x00003000
# define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000
# define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000
# define GMC_DP_CONVERSION_TEMP_9300 0x00008000
# define GMC_DP_CONVERSION_TEMP_6500 0x00000000
# define GMC_DP_SRC_RECT 0x02000000
# define GMC_DP_SRC_HOST 0x03000000
# define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000
# define GMC_3D_FCN_EN_CLR 0x00000000
# define GMC_3D_FCN_EN_SET 0x08000000
# define GMC_DST_CLR_CMP_FCN_LEAVE 0x00000000
# define GMC_DST_CLR_CMP_FCN_CLEAR 0x10000000
# define GMC_AUX_CLIP_LEAVE 0x00000000
# define GMC_AUX_CLIP_CLEAR 0x20000000
# define GMC_WRITE_MASK_LEAVE 0x00000000
# define GMC_WRITE_MASK_SET 0x40000000
# define GMC_CLR_CMP_CNTL_DIS (1 << 28)
# define GMC_SRC_DATATYPE_COLOR (3 << 12)
# define ROP3_S 0x00cc0000
# define ROP3_SRCCOPY 0x00cc0000
# define ROP3_P 0x00f00000
# define ROP3_PATCOPY 0x00f00000
# define DP_SRC_SOURCE_MASK (7 << 24)
# define GMC_BRUSH_NONE (15 << 4)
# define DP_SRC_SOURCE_MEMORY (2 << 24)
# define GMC_BRUSH_SOLIDCOLOR 0x000000d0
#define SC_TOP_LEFT 0x16EC
#define SC_BOTTOM_RIGHT 0x16F0
#define SRC_SC_BOTTOM_RIGHT 0x16F4
#define RB2D_DSTCACHE_CTLSTAT 0x342C
#define RB2D_DSTCACHE_MODE 0x3428
#define BASE_CODE 0x0f0b
#define RADEON_BIOS_0_SCRATCH 0x0010
#define RADEON_BIOS_1_SCRATCH 0x0014
#define RADEON_BIOS_2_SCRATCH 0x0018
#define RADEON_BIOS_3_SCRATCH 0x001c
#define RADEON_BIOS_4_SCRATCH 0x0020
#define RADEON_BIOS_5_SCRATCH 0x0024
#define RADEON_BIOS_6_SCRATCH 0x0028
#define RADEON_BIOS_7_SCRATCH 0x002c
#define CLK_PIN_CNTL 0x0001
#define PPLL_CNTL 0x0002
# define PPLL_RESET (1 << 0)
# define PPLL_SLEEP (1 << 1)
# define PPLL_ATOMIC_UPDATE_EN (1 << 16)
# define PPLL_VGA_ATOMIC_UPDATE_EN (1 << 17)
# define PPLL_ATOMIC_UPDATE_VSYNC (1 << 18)
#define PPLL_REF_DIV 0x0003
# define PPLL_REF_DIV_MASK 0x03ff
# define PPLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */
# define PPLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */
#define PPLL_DIV_0 0x0004
#define PPLL_DIV_1 0x0005
#define PPLL_DIV_2 0x0006
#define PPLL_DIV_3 0x0007
#define VCLK_ECP_CNTL 0x0008
#define HTOTAL_CNTL 0x0009
#define HTOTAL2_CNTL 0x002e /* PLL */
#define M_SPLL_REF_FB_DIV 0x000a
#define AGP_PLL_CNTL 0x000b
#define SPLL_CNTL 0x000c
#define SCLK_CNTL 0x000d
#define MPLL_CNTL 0x000e
#define MCLK_CNTL 0x0012
/* MCLK_CNTL bit constants */
# define FORCEON_MCLKA (1 << 16)
# define FORCEON_MCLKB (1 << 17)
# define FORCEON_YCLKA (1 << 18)
# define FORCEON_YCLKB (1 << 19)
# define FORCEON_MC (1 << 20)
# define FORCEON_AIC (1 << 21)
#define PLL_TEST_CNTL 0x0013
#define P2PLL_CNTL 0x002a /* P2PLL */
# define P2PLL_RESET (1 << 0)
# define P2PLL_SLEEP (1 << 1)
# define P2PLL_ATOMIC_UPDATE_EN (1 << 16)
# define P2PLL_VGA_ATOMIC_UPDATE_EN (1 << 17)
# define P2PLL_ATOMIC_UPDATE_VSYNC (1 << 18)
#define P2PLL_DIV_0 0x002c
# define P2PLL_FB0_DIV_MASK 0x07ff
# define P2PLL_POST0_DIV_MASK 0x00070000
#define P2PLL_REF_DIV 0x002B /* PLL */
# define P2PLL_REF_DIV_MASK 0x03ff
# define P2PLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */
# define P2PLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */
/* masks */
#define CONFIG_MEMSIZE_MASK 0x1f000000
#define MEM_CFG_TYPE 0x40000000
#define DST_OFFSET_MASK 0x003fffff
#define DST_PITCH_MASK 0x3fc00000
#define DEFAULT_TILE_MASK 0xc0000000
#define PPLL_DIV_SEL_MASK 0x00000300
#define PPLL_FB3_DIV_MASK 0x000007ff
#define PPLL_POST3_DIV_MASK 0x00070000
#define GUI_ACTIVE 0x80000000
/* GEN_RESET_CNTL bit constants */
#define SOFT_RESET_GUI 0x00000001
#define SOFT_RESET_VCLK 0x00000100
#define SOFT_RESET_PCLK 0x00000200
#define SOFT_RESET_ECP 0x00000400
#define SOFT_RESET_DISPENG_XCLK 0x00000800
/* RAGE THEATER REGISTERS */
#define DMA_VIPH0_COMMAND 0x0A00
#define DMA_VIPH1_COMMAND 0x0A04
#define DMA_VIPH2_COMMAND 0x0A08
#define DMA_VIPH3_COMMAND 0x0A0C
#define DMA_VIPH_STATUS 0x0A10
#define DMA_VIPH_CHUNK_0 0x0A18
#define DMA_VIPH_CHUNK_1_VAL 0x0A1C
#define DMA_VIP0_TABLE_ADDR 0x0A20
#define DMA_VIPH0_ACTIVE 0x0A24
#define DMA_VIP1_TABLE_ADDR 0x0A30
#define DMA_VIPH1_ACTIVE 0x0A34
#define DMA_VIP2_TABLE_ADDR 0x0A40
#define DMA_VIPH2_ACTIVE 0x0A44
#define DMA_VIP3_TABLE_ADDR 0x0A50
#define DMA_VIPH3_ACTIVE 0x0A54
#define DMA_VIPH_ABORT 0x0A88
#define VIPH_CH0_DATA 0x0c00
#define VIPH_CH1_DATA 0x0c04
#define VIPH_CH2_DATA 0x0c08
#define VIPH_CH3_DATA 0x0c0c
#define VIPH_CH0_ADDR 0x0c10
#define VIPH_CH1_ADDR 0x0c14
#define VIPH_CH2_ADDR 0x0c18
#define VIPH_CH3_ADDR 0x0c1c
#define VIPH_CH0_SBCNT 0x0c20
#define VIPH_CH1_SBCNT 0x0c24
#define VIPH_CH2_SBCNT 0x0c28
#define VIPH_CH3_SBCNT 0x0c2c
#define VIPH_CH0_ABCNT 0x0c30
#define VIPH_CH1_ABCNT 0x0c34
#define VIPH_CH2_ABCNT 0x0c38
#define VIPH_CH3_ABCNT 0x0c3c
#define VIPH_CONTROL 0x0c40
#define VIPH_DV_LAT 0x0c44
#define VIPH_BM_CHUNK 0x0c48
#define VIPH_DV_INT 0x0c4c
#define VIPH_TIMEOUT_STAT 0x0c50
#define VIPH_REG_DATA 0x0084
#define VIPH_REG_ADDR 0x0080
/* Address Space Rage Theatre Registers (VIP Access) */
#define VIP_VIP_VENDOR_DEVICE_ID 0x0000
#define VIP_VIP_SUB_VENDOR_DEVICE_ID 0x0004
#define VIP_VIP_COMMAND_STATUS 0x0008
#define VIP_VIP_REVISION_ID 0x000c
#define VIP_HW_DEBUG 0x0010
#define VIP_SW_SCRATCH 0x0014
#define VIP_I2C_CNTL_0 0x0020
#define VIP_I2C_CNTL_1 0x0024
#define VIP_I2C_DATA 0x0028
#define VIP_INT_CNTL 0x002c
#define VIP_GPIO_INOUT 0x0030
#define VIP_GPIO_CNTL 0x0034
#define VIP_CLKOUT_GPIO_CNTL 0x0038
#define VIP_RIPINTF_PORT_CNTL 0x003c
#define VIP_ADC_CNTL 0x0400
#define VIP_ADC_DEBUG 0x0404
#define VIP_STANDARD_SELECT 0x0408
#define VIP_THERMO2BIN_STATUS 0x040c
#define VIP_COMB_CNTL0 0x0440
#define VIP_COMB_CNTL1 0x0444
#define VIP_COMB_CNTL2 0x0448
#define VIP_COMB_LINE_LENGTH 0x044c
#define VIP_NOISE_CNTL0 0x0450
#define VIP_HS_PLINE 0x0480
#define VIP_HS_DTOINC 0x0484
#define VIP_HS_PLLGAIN 0x0488
#define VIP_HS_MINMAXWIDTH 0x048c
#define VIP_HS_GENLOCKDELAY 0x0490
#define VIP_HS_WINDOW_LIMIT 0x0494
#define VIP_HS_WINDOW_OC_SPEED 0x0498
#define VIP_HS_PULSE_WIDTH 0x049c
#define VIP_HS_PLL_ERROR 0x04a0
#define VIP_HS_PLL_FS_PATH 0x04a4
#define VIP_SG_BLACK_GATE 0x04c0
#define VIP_SG_SYNCTIP_GATE 0x04c4
#define VIP_SG_UVGATE_GATE 0x04c8
#define VIP_LP_AGC_CLAMP_CNTL0 0x0500
#define VIP_LP_AGC_CLAMP_CNTL1 0x0504
#define VIP_LP_BRIGHTNESS 0x0508
#define VIP_LP_CONTRAST 0x050c
#define VIP_LP_SLICE_LIMIT 0x0510
#define VIP_LP_WPA_CNTL0 0x0514
#define VIP_LP_WPA_CNTL1 0x0518
#define VIP_LP_BLACK_LEVEL 0x051c
#define VIP_LP_SLICE_LEVEL 0x0520
#define VIP_LP_SYNCTIP_LEVEL 0x0524
#define VIP_LP_VERT_LOCKOUT 0x0528
#define VIP_VS_DETECTOR_CNTL 0x0540
#define VIP_VS_BLANKING_CNTL 0x0544
#define VIP_VS_FIELD_ID_CNTL 0x0548
#define VIP_VS_COUNTER_CNTL 0x054c
#define VIP_VS_FRAME_TOTAL 0x0550
#define VIP_VS_LINE_COUNT 0x0554
#define VIP_CP_PLL_CNTL0 0x0580
#define VIP_CP_PLL_CNTL1 0x0584
#define VIP_CP_HUE_CNTL 0x0588
#define VIP_CP_BURST_GAIN 0x058c
#define VIP_CP_AGC_CNTL 0x0590
#define VIP_CP_ACTIVE_GAIN 0x0594
#define VIP_CP_PLL_STATUS0 0x0598
#define VIP_CP_PLL_STATUS1 0x059c
#define VIP_CP_PLL_STATUS2 0x05a0
#define VIP_CP_PLL_STATUS3 0x05a4
#define VIP_CP_PLL_STATUS4 0x05a8
#define VIP_CP_PLL_STATUS5 0x05ac
#define VIP_CP_PLL_STATUS6 0x05b0
#define VIP_CP_PLL_STATUS7 0x05b4
#define VIP_CP_DEBUG_FORCE 0x05b8
#define VIP_CP_VERT_LOCKOUT 0x05bc
#define VIP_H_ACTIVE_WINDOW 0x05c0
#define VIP_V_ACTIVE_WINDOW 0x05c4
#define VIP_H_VBI_WINDOW 0x05c8
#define VIP_V_VBI_WINDOW 0x05cc
#define VIP_VBI_CONTROL 0x05d0
#define VIP_DECODER_DEBUG_CNTL 0x05d4
#define VIP_SINGLE_STEP_DATA 0x05d8
#define VIP_MASTER_CNTL 0x0040
#define VIP_RGB_CNTL 0x0048
#define VIP_CLKOUT_CNTL 0x004c
#define VIP_SYNC_CNTL 0x0050
#define VIP_I2C_CNTL 0x0054
#define VIP_HTOTAL 0x0080
#define VIP_HDISP 0x0084
#define VIP_HSIZE 0x0088
#define VIP_HSTART 0x008c
#define VIP_HCOUNT 0x0090
#define VIP_VTOTAL 0x0094
#define VIP_VDISP 0x0098
#define VIP_VCOUNT 0x009c
#define VIP_VFTOTAL 0x00a0
#define VIP_DFCOUNT 0x00a4
#define VIP_DFRESTART 0x00a8
#define VIP_DHRESTART 0x00ac
#define VIP_DVRESTART 0x00b0
#define VIP_SYNC_SIZE 0x00b4
#define VIP_TV_PLL_FINE_CNTL 0x00b8
#define VIP_CRT_PLL_FINE_CNTL 0x00bc
#define VIP_TV_PLL_CNTL 0x00c0
#define VIP_CRT_PLL_CNTL 0x00c4
#define VIP_PLL_CNTL0 0x00c8
#define VIP_PLL_TEST_CNTL 0x00cc
#define VIP_CLOCK_SEL_CNTL 0x00d0
#define VIP_VIN_PLL_CNTL 0x00d4
#define VIP_VIN_PLL_FINE_CNTL 0x00d8
#define VIP_AUD_PLL_CNTL 0x00e0
#define VIP_AUD_PLL_FINE_CNTL 0x00e4
#define VIP_AUD_CLK_DIVIDERS 0x00e8
#define VIP_AUD_DTO_INCREMENTS 0x00ec
#define VIP_L54_PLL_CNTL 0x00f0
#define VIP_L54_PLL_FINE_CNTL 0x00f4
#define VIP_L54_DTO_INCREMENTS 0x00f8
#define VIP_PLL_CNTL1 0x00fc
#define VIP_FRAME_LOCK_CNTL 0x0100
#define VIP_SYNC_LOCK_CNTL 0x0104
#define VIP_TVO_SYNC_PAT_ACCUM 0x0108
#define VIP_TVO_SYNC_THRESHOLD 0x010c
#define VIP_TVO_SYNC_PAT_EXPECT 0x0110
#define VIP_DELAY_ONE_MAP_A 0x0114
#define VIP_DELAY_ONE_MAP_B 0x0118
#define VIP_DELAY_ZERO_MAP_A 0x011c
#define VIP_DELAY_ZERO_MAP_B 0x0120
#define VIP_TVO_DATA_DELAY_A 0x0140
#define VIP_TVO_DATA_DELAY_B 0x0144
#define VIP_HOST_READ_DATA 0x0180
#define VIP_HOST_WRITE_DATA 0x0184
#define VIP_HOST_RD_WT_CNTL 0x0188
#define VIP_VSCALER_CNTL1 0x01c0
#define VIP_TIMING_CNTL 0x01c4
#define VIP_VSCALER_CNTL2 0x01c8
#define VIP_Y_FALL_CNTL 0x01cc
#define VIP_Y_RISE_CNTL 0x01d0
#define VIP_Y_SAW_TOOTH_CNTL 0x01d4
#define VIP_UPSAMP_AND_GAIN_CNTL 0x01e0
#define VIP_GAIN_LIMIT_SETTINGS 0x01e4
#define VIP_LINEAR_GAIN_SETTINGS 0x01e8
#define VIP_MODULATOR_CNTL1 0x0200
#define VIP_MODULATOR_CNTL2 0x0204
#define VIP_MV_MODE_CNTL 0x0208
#define VIP_MV_STRIPE_CNTL 0x020c
#define VIP_MV_LEVEL_CNTL1 0x0210
#define VIP_MV_LEVEL_CNTL2 0x0214
#define VIP_PRE_DAC_MUX_CNTL 0x0240
#define VIP_TV_DAC_CNTL 0x0280
#define VIP_CRC_CNTL 0x02c0
#define VIP_VIDEO_PORT_SIG 0x02c4
#define VIP_VBI_CC_CNTL 0x02c8
#define VIP_VBI_EDS_CNTL 0x02cc
#define VIP_VBI_20BIT_CNTL 0x02d0
#define VIP_VBI_DTO_CNTL 0x02d4
#define VIP_VBI_LEVEL_CNTL 0x02d8
#define VIP_UV_ADR 0x0300
#define VIP_MV_STATUS 0x0330
#define VIP_UPSAMP_COEFF0_0 0x0340
#define VIP_UPSAMP_COEFF0_1 0x0344
#define VIP_UPSAMP_COEFF0_2 0x0348
#define VIP_UPSAMP_COEFF1_0 0x034c
#define VIP_UPSAMP_COEFF1_1 0x0350
#define VIP_UPSAMP_COEFF1_2 0x0354
#define VIP_UPSAMP_COEFF2_0 0x0358
#define VIP_UPSAMP_COEFF2_1 0x035c
#define VIP_UPSAMP_COEFF2_2 0x0360
#define VIP_UPSAMP_COEFF3_0 0x0364
#define VIP_UPSAMP_COEFF3_1 0x0368
#define VIP_UPSAMP_COEFF3_2 0x036c
#define VIP_UPSAMP_COEFF4_0 0x0370
#define VIP_UPSAMP_COEFF4_1 0x0374
#define VIP_UPSAMP_COEFF4_2 0x0378
#define VIP_TV_DTO_INCREMENTS 0x0390
#define VIP_CRT_DTO_INCREMENTS 0x0394
#define VIP_VSYNC_DIFF_CNTL 0x03a0
#define VIP_VSYNC_DIFF_LIMITS 0x03a4
#define VIP_VSYNC_DIFF_RD_DATA 0x03a8
#define VIP_SCALER_IN_WINDOW 0x0618
#define VIP_SCALER_OUT_WINDOW 0x061c
#define VIP_H_SCALER_CONTROL 0x0600
#define VIP_V_SCALER_CONTROL 0x0604
#define VIP_V_DEINTERLACE_CONTROL 0x0608
#define VIP_VBI_SCALER_CONTROL 0x060c
#define VIP_DVS_PORT_CTRL 0x0610
#define VIP_DVS_PORT_READBACK 0x0614
#define VIP_FIFOA_CONFIG 0x0800
#define VIP_FIFOB_CONFIG 0x0804
#define VIP_FIFOC_CONFIG 0x0808
#define VIP_SPDIF_PORT_CNTL 0x080c
#define VIP_SPDIF_CHANNEL_STAT 0x0810
#define VIP_SPDIF_AC3_PREAMBLE 0x0814
#define VIP_I2S_TRANSMIT_CNTL 0x0818
#define VIP_I2S_RECEIVE_CNTL 0x081c
#define VIP_SPDIF_TX_CNT_REG 0x0820
#define VIP_IIS_TX_CNT_REG 0x0824
/* Status defines */
#define VIP_BUSY 0
#define VIP_IDLE 1
#define VIP_RESET 2
#define VIPH_TIMEOUT_STAT__VIPH_REG_STAT 0x00000010
#define VIPH_TIMEOUT_STAT__VIPH_REG_AK 0x00000010
#define VIPH_TIMEOUT_STAT__VIPH_REGR_DIS 0x01000000
#define TEST_DEBUG_CNTL__TEST_DEBUG_OUT_EN 0x00000001
#define RT_ATI_ID 0x4D541002
/* Register/Field values: */
#define RT_COMP0 0x0
#define RT_COMP1 0x1
#define RT_COMP2 0x2
#define RT_YF_COMP3 0x3
#define RT_YR_COMP3 0x4
#define RT_YCF_COMP4 0x5
#define RT_YCR_COMP4 0x6
/* Video standard defines */
#define RT_NTSC 0x0
#define RT_PAL 0x1
#define RT_SECAM 0x2
#define extNONE 0x0000
#define extNTSC 0x0100
#define extRsvd 0x0200
#define extPAL 0x0300
#define extPAL_M 0x0400
#define extPAL_N 0x0500
#define extSECAM 0x0600
#define extPAL_NCOMB 0x0700
#define extNTSC_J 0x0800
#define extNTSC_443 0x0900
#define extPAL_BGHI 0x0A00
#define extPAL_60 0x0B00
/* these are used in MSP3430 */
#define extPAL_DK1 0x0C00
#define extPAL_AUTO 0x0D00
#define RT_FREF_2700 6
#define RT_FREF_2950 5
#define RT_COMPOSITE 0x0
#define RT_SVIDEO 0x1
#define RT_NORM_SHARPNESS 0x03
#define RT_HIGH_SHARPNESS 0x0F
#define RT_HUE_PAL_DEF 0x00
#define RT_DECINTERLACED 0x1
#define RT_DECNONINTERLACED 0x0
#define NTSC_LINES 525
#define PAL_SECAM_LINES 625
#define RT_ASYNC_ENABLE 0x0
#define RT_ASYNC_DISABLE 0x1
#define RT_ASYNC_RESET 0x1
#define RT_VINRST_ACTIVE 0x0
#define RT_VINRST_RESET 0x1
#define RT_L54RST_RESET 0x1
#define RT_REF_CLK 0x0
#define RT_PLL_VIN_CLK 0x1
#define RT_VIN_ASYNC_RST 0x20
#define RT_DVS_ASYNC_RST 0x80
#define RT_ADC_ENABLE 0x0
#define RT_ADC_DISABLE 0x1
#define RT_DVSDIR_IN 0x0
#define RT_DVSDIR_OUT 0x1
#define RT_DVSCLK_HIGH 0x0
#define RT_DVSCLK_LOW 0x1
#define RT_DVSCLK_SEL_8FS 0x0
#define RT_DVSCLK_SEL_27MHZ 0x1
#define RT_DVS_CONTSTREAM 0x1
#define RT_DVS_NONCONTSTREAM 0x0
#define RT_DVSDAT_HIGH 0x0
#define RT_DVSDAT_LOW 0x1
#define RT_ADC_CNTL_DEFAULT 0x03252338
/* COMB_CNTL0 FILTER SETTINGS FOR DIFFERENT STANDARDS: */
#define RT_NTSCM_COMB_CNTL0_COMPOSITE 0x09438090
#define RT_NTSCM_COMB_CNTL0_SVIDEO 0x48540000
#define RT_PAL_COMB_CNTL0_COMPOSITE 0x09438090
#define RT_PAL_COMB_CNTL0_SVIDEO 0x40348090
#define RT_SECAM_COMB_CNTL0_COMPOSITE 0xD0108090 /* instead of orig 0xD0088090 - eric*/
#define RT_SECAM_COMB_CNTL0_SVIDEO 0x50148090
#define RT_PALN_COMB_CNTL0_COMPOSITE 0x09438090
#define RT_PALN_COMB_CNTL0_SVIDEO 0x40348090
#define RT_PALM_COMB_CNTL0_COMPOSITE 0x09438090
#define RT_PALM_COMB_CNTL0_SVIDEO 0x40348090
/* End of filter settings. */
/* COMB_CNTL1 FILTER SETTINGS FOR DIFFERENT STANDARDS: */
#define RT_NTSCM_COMB_CNTL1_COMPOSITE 0x00000010
#define RT_NTSCM_COMB_CNTL1_SVIDEO 0x00000081
#define RT_PAL_COMB_CNTL1_COMPOSITE 0x00000010
#define RT_PAL_COMB_CNTL1_SVIDEO 0x000000A1
#define RT_SECAM_COMB_CNTL1_COMPOSITE 0x00000091
#define RT_SECAM_COMB_CNTL1_SVIDEO 0x00000081
#define RT_PALN_COMB_CNTL1_COMPOSITE 0x00000010
#define RT_PALN_COMB_CNTL1_SVIDEO 0x000000A1
#define RT_PALM_COMB_CNTL1_COMPOSITE 0x00000010
#define RT_PALM_COMB_CNTL1_SVIDEO 0x000000A1
/* End of filter settings. */
/* COMB_CNTL2 FILTER SETTINGS FOR DIFFERENT STANDARDS: */
#define RT_NTSCM_COMB_CNTL2_COMPOSITE 0x16161010
#define RT_NTSCM_COMB_CNTL2_SVIDEO 0xFFFFFFFF
#define RT_PAL_COMB_CNTL2_COMPOSITE 0x06080102 /* instead of 0x16161010 - Ivo */
#define RT_PAL_COMB_CNTL2_SVIDEO 0x06080102
#define RT_SECAM_COMB_CNTL2_COMPOSITE 0xffffffff /* instead of 0x06080102 - eric */
#define RT_SECAM_COMB_CNTL2_SVIDEO 0x06080102
#define RT_PALN_COMB_CNTL2_COMPOSITE 0x06080102
#define RT_PALN_COMB_CNTL2_SVIDEO 0x06080102
#define RT_PALM_COMB_CNTL2_COMPOSITE 0x06080102
#define RT_PALM_COMB_CNTL2_SVIDEO 0x06080102
/* End of filter settings. */
/* COMB_LINE_LENGTH FILTER SETTINGS FOR DIFFERENT STANDARDS: */
#define RT_NTSCM_COMB_LENGTH_COMPOSITE 0x0718038A
#define RT_NTSCM_COMB_LENGTH_SVIDEO 0x0718038A
#define RT_PAL_COMB_LENGTH_COMPOSITE 0x08DA046B
#define RT_PAL_COMB_LENGTH_SVIDEO 0x08DA046B
#define RT_SECAM_COMB_LENGTH_COMPOSITE 0x08DA046A
#define RT_SECAM_COMB_LENGTH_SVIDEO 0x08DA046A
#define RT_PALN_COMB_LENGTH_COMPOSITE 0x07260391
#define RT_PALN_COMB_LENGTH_SVIDEO 0x07260391
#define RT_PALM_COMB_LENGTH_COMPOSITE 0x07160389
#define RT_PALM_COMB_LENGTH_SVIDEO 0x07160389
/* End of filter settings. */
/* LP_AGC_CLAMP_CNTL0 */
#define RT_NTSCM_SYNCTIP_REF0 0x00000037
#define RT_NTSCM_SYNCTIP_REF1 0x00000029
#define RT_NTSCM_CLAMP_REF 0x0000003B
#define RT_NTSCM_PEAKWHITE 0x000000FF
#define RT_NTSCM_VBI_PEAKWHITE 0x000000C2
#define RT_NTSCM_WPA_THRESHOLD 0x00000406
#define RT_NTSCM_WPA_TRIGGER_LO 0x000000B3
#define RT_NTSCM_WPA_TRIGGER_HIGH 0x0000021B
#define RT_NTSCM_LP_LOCKOUT_START 0x00000206
#define RT_NTSCM_LP_LOCKOUT_END 0x00000021
#define RT_NTSCM_CH_DTO_INC 0x00400000
#define RT_NTSCM_CH_PLL_SGAIN 0x00000001
#define RT_NTSCM_CH_PLL_FGAIN 0x00000002
#define RT_NTSCM_CR_BURST_GAIN 0x0000007A
#define RT_NTSCM_CB_BURST_GAIN 0x000000AC
#define RT_NTSCM_CH_HEIGHT 0x000000CD
#define RT_NTSCM_CH_KILL_LEVEL 0x000000C0
#define RT_NTSCM_CH_AGC_ERROR_LIM 0x00000002
#define RT_NTSCM_CH_AGC_FILTER_EN 0x00000000
#define RT_NTSCM_CH_AGC_LOOP_SPEED 0x00000000
#define RT_NTSCM_CRDR_ACTIVE_GAIN 0x0000007A
#define RT_NTSCM_CBDB_ACTIVE_GAIN 0x000000AC
#define RT_NTSCM_VERT_LOCKOUT_START 0x00000207
#define RT_NTSCM_VERT_LOCKOUT_END 0x0000000E
#define RT_NTSCJ_SYNCTIP_REF0 0x00000004
#define RT_NTSCJ_SYNCTIP_REF1 0x00000012
#define RT_NTSCJ_CLAMP_REF 0x0000003B
#define RT_NTSCJ_PEAKWHITE 0x000000CB
#define RT_NTSCJ_VBI_PEAKWHITE 0x000000C2
#define RT_NTSCJ_WPA_THRESHOLD 0x000004B0
#define RT_NTSCJ_WPA_TRIGGER_LO 0x000000B4
#define RT_NTSCJ_WPA_TRIGGER_HIGH 0x0000021C
#define RT_NTSCJ_LP_LOCKOUT_START 0x00000206
#define RT_NTSCJ_LP_LOCKOUT_END 0x00000021
#define RT_NTSCJ_CR_BURST_GAIN 0x00000071
#define RT_NTSCJ_CB_BURST_GAIN 0x0000009F
#define RT_NTSCJ_CH_HEIGHT 0x000000CD
#define RT_NTSCJ_CH_KILL_LEVEL 0x000000C0
#define RT_NTSCJ_CH_AGC_ERROR_LIM 0x00000002
#define RT_NTSCJ_CH_AGC_FILTER_EN 0x00000000
#define RT_NTSCJ_CH_AGC_LOOP_SPEED 0x00000000
#define RT_NTSCJ_CRDR_ACTIVE_GAIN 0x00000071
#define RT_NTSCJ_CBDB_ACTIVE_GAIN 0x0000009F
#define RT_NTSCJ_VERT_LOCKOUT_START 0x00000207
#define RT_NTSCJ_VERT_LOCKOUT_END 0x0000000E
#define RT_PAL_SYNCTIP_REF0 0x37 /* instead of 0x00000004 - Ivo */
#define RT_PAL_SYNCTIP_REF1 0x26 /* instead of 0x0000000F - Ivo */
#define RT_PAL_CLAMP_REF 0x0000003B
#define RT_PAL_PEAKWHITE 0xFF /* instead of 0x000000C1 - Ivo */
#define RT_PAL_VBI_PEAKWHITE 0xC6 /* instead of 0x000000C7 - Ivo */
#define RT_PAL_WPA_THRESHOLD 0x59C /* instead of 0x000006A4 - Ivo */
#define RT_PAL_WPA_TRIGGER_LO 0x00000096
#define RT_PAL_WPA_TRIGGER_HIGH 0x000001C2
#define RT_PAL_LP_LOCKOUT_START 0x00000263
#define RT_PAL_LP_LOCKOUT_END 0x0000002C
#define RT_PAL_CH_DTO_INC 0x00400000
#define RT_PAL_CH_PLL_SGAIN 1 /* instead of 0x00000002 - Ivo */
#define RT_PAL_CH_PLL_FGAIN 2 /* instead of 0x00000001 - Ivo */
#define RT_PAL_CR_BURST_GAIN 0x0000007A
#define RT_PAL_CB_BURST_GAIN 0x000000AB
#define RT_PAL_CH_HEIGHT 0x0000009C
#define RT_PAL_CH_KILL_LEVEL 4 /* instead of 0x00000090 - Ivo */
#define RT_PAL_CH_AGC_ERROR_LIM 1 /* instead of 0x00000002 - Ivo */
#define RT_PAL_CH_AGC_FILTER_EN 1 /* instead of 0x00000000 - Ivo */
#define RT_PAL_CH_AGC_LOOP_SPEED 0x00000000
#define RT_PAL_CRDR_ACTIVE_GAIN 0x9E /* instead of 0x0000007A - Ivo */
#define RT_PAL_CBDB_ACTIVE_GAIN 0xDF /* instead of 0x000000AB - Ivo */
#define RT_PAL_VERT_LOCKOUT_START 0x00000269
#define RT_PAL_VERT_LOCKOUT_END 0x00000012
#define RT_SECAM_SYNCTIP_REF0 0x37 /* instead of 0x00000004 - Ivo */
#define RT_SECAM_SYNCTIP_REF1 0x26 /* instead of 0x0000000F - Ivo */
#define RT_SECAM_CLAMP_REF 0x0000003B
#define RT_SECAM_PEAKWHITE 0xFF /* instead of 0x000000C1 - Ivo */
#define RT_SECAM_VBI_PEAKWHITE 0xC6 /* instead of 0x000000C7 - Ivo */
#define RT_SECAM_WPA_THRESHOLD 0x57A /* instead of 0x6A4, instead of 0x0000059C is Ivo's value , -eric*/
#define RT_SECAM_WPA_TRIGGER_LO 0x96 /* instead of 0x0000026B - eric */
#define RT_SECAM_WPA_TRIGGER_HIGH 0x000001C2
#define RT_SECAM_LP_LOCKOUT_START 0x263 /* instead of 0x0000026B - eric */
#define RT_SECAM_LP_LOCKOUT_END 0x2b /* instead of 0x0000002C -eric */
#define RT_SECAM_CH_DTO_INC 0x003E7A28
#define RT_SECAM_CH_PLL_SGAIN 0x4 /* instead of 0x00000006 -Volodya */
#define RT_SECAM_CH_PLL_FGAIN 0x7 /* instead of 0x00000006 -Volodya */
#define RT_SECAM_CR_BURST_GAIN 0x1FF /* instead of 0x00000200 -Volodya */
#define RT_SECAM_CB_BURST_GAIN 0x1FF /* instead of 0x00000200 -Volodya */
#define RT_SECAM_CH_HEIGHT 0x00000066
#define RT_SECAM_CH_KILL_LEVEL 0x00000060
#define RT_SECAM_CH_AGC_ERROR_LIM 0x00000003
#define RT_SECAM_CH_AGC_FILTER_EN 0x00000000
#define RT_SECAM_CH_AGC_LOOP_SPEED 0x00000000
#define RT_SECAM_CRDR_ACTIVE_GAIN 0x11B /* instead of 0x00000200 - eric */
#define RT_SECAM_CBDB_ACTIVE_GAIN 0x15A /* instead of 0x00000200 - eric */
#define RT_SECAM_VERT_LOCKOUT_START 0x00000269
#define RT_SECAM_VERT_LOCKOUT_END 0x00000012
#define RT_PAL_VS_FIELD_BLANK_END 0x2A /* instead of 0x0000002C - Ivo*/
#define RT_NTSCM_VS_FIELD_BLANK_END 0x0000000A
#define RT_NTSCM_FIELD_IDLOCATION 0x00000105
#define RT_PAL_FIELD_IDLOCATION 0x00000137
#define RT_NTSCM_H_ACTIVE_START 0x00000070
#define RT_NTSCM_H_ACTIVE_END 0x00000363
#define RT_PAL_H_ACTIVE_START 0x0000009A
#define RT_PAL_H_ACTIVE_END 0x00000439
#define RT_NTSCM_V_ACTIVE_START ((22-4)*2+1)
#define RT_NTSCM_V_ACTIVE_END ((22+240-4)*2+1)
#define RT_PAL_V_ACTIVE_START 0x2E /* instead of 0x00000023 (Same as SECAM) - Ivo */
#define RT_PAL_V_ACTIVE_END 0x269 /* instead of 0x00000262 - Ivo */
/* VBI */
#define RT_NTSCM_H_VBI_WIND_START 0x00000049
#define RT_NTSCM_H_VBI_WIND_END 0x00000366
#define RT_PAL_H_VBI_WIND_START 0x00000084
#define RT_PAL_H_VBI_WIND_END 0x0000041F
#define RT_NTSCM_V_VBI_WIND_START fld_V_VBI_WIND_START_def
#define RT_NTSCM_V_VBI_WIND_END fld_V_VBI_WIND_END_def
#define RT_PAL_V_VBI_WIND_START 0x8 /* instead of 0x0000000B - Ivo */
#define RT_PAL_V_VBI_WIND_END 0x2D /* instead of 0x00000022 - Ivo */
#define RT_VBI_CAPTURE_EN 0x00000001 /* Enable */
#define RT_VBI_CAPTURE_DIS 0x00000000 /* Disable */
#define RT_RAW_CAPTURE 0x00000002 /* Use raw Video Capture. */
#define RT_NTSCM_VSYNC_INT_TRIGGER 0x2AA
#define RT_PALSEM_VSYNC_INT_TRIGGER 0x353
#define RT_NTSCM_VSYNC_INT_HOLD 0x17
#define RT_PALSEM_VSYNC_INT_HOLD 0x1C
#define RT_NTSCM_VS_FIELD_BLANK_START 0x206
#define RT_PALSEM_VS_FIELD_BLANK_START 0x26D /* instead of 0x26C - Ivo */
#define RT_FIELD_FLIP_EN 0x4
#define RT_V_FIELD_FLIP_INVERTED 0x2000
#define RT_NTSCM_H_IN_START 0x70
#define RT_PAL_H_IN_START 154 /* instead of 144 - Ivo */
#define RT_SECAM_H_IN_START 0x91 /* instead of 0x9A, Ivo value is 154, instead of 144 - Volodya, - eric */
#define RT_NTSC_H_ACTIVE_SIZE 744
#define RT_PAL_H_ACTIVE_SIZE 928 /* instead of 927 - Ivo */
#define RT_SECAM_H_ACTIVE_SIZE 932 /* instead of 928, instead of 927 - Ivo, - eric */
#define RT_NTSCM_V_IN_START (0x23)
#define RT_PAL_V_IN_START 44 /* instead of (45-6) - Ivo */
#define RT_SECAM_V_IN_START 0x2C /* instead of (45-6) - Volodya */
#define RT_NTSCM_V_ACTIVE_SIZE 480
#define RT_PAL_V_ACTIVE_SIZE 572 /* instead of 575 - Ivo */
#define RT_SECAM_V_ACTIVE_SIZE 570 /* instead of 572, instead of 575 - Ivo, - eric */
#define RT_NTSCM_WIN_CLOSE_LIMIT 0x4D
#define RT_NTSCJ_WIN_CLOSE_LIMIT 0x4D
#define RT_NTSC443_WIN_CLOSE_LIMIT 0x5F
#define RT_PALM_WIN_CLOSE_LIMIT 0x4D
#define RT_PALN_WIN_CLOSE_LIMIT 0x5F
#define RT_SECAM_WIN_CLOSE_LIMIT 0xC7 /* instead of 0x5F - eric */
#define RT_NTSCM_VS_FIELD_BLANK_START 0x206
#define RT_NTSCM_HS_PLL_SGAIN 0x5
#define RT_NTSCM_HS_PLL_FGAIN 0x7
#define RT_NTSCM_H_OUT_WIND_WIDTH 0x2F4
#define RT_NTSCM_V_OUT_WIND_HEIGHT 0xF0
#define TV 0x1
#define LINEIN 0x2
#define MUTE 0x3
#define DEC_COMPOSITE 0
#define DEC_SVIDEO 1
#define DEC_TUNER 2
#define DEC_NTSC 0
#define DEC_PAL 1
#define DEC_SECAM 2
#define DEC_NTSC_J 8
#define DEC_SMOOTH 0
#define DEC_SHARP 1
/* RT Register Field Defaults: */
#define fld_tmpReg1_def 0x00000000
#define fld_tmpReg2_def 0x00000001
#define fld_tmpReg3_def 0x00000002
#define fld_LP_CONTRAST_def 0x0000006e
#define fld_LP_BRIGHTNESS_def 0x00003ff0
#define fld_CP_HUE_CNTL_def 0x00000000
#define fld_LUMA_FILTER_def 0x00000001
#define fld_H_SCALE_RATIO_def 0x00010000
#define fld_H_SHARPNESS_def 0x00000000
#define fld_V_SCALE_RATIO_def 0x00000800
#define fld_V_DEINTERLACE_ON_def 0x00000001
#define fld_V_BYPSS_def 0x00000000
#define fld_V_DITHER_ON_def 0x00000001
#define fld_EVENF_OFFSET_def 0x00000000
#define fld_ODDF_OFFSET_def 0x00000000
#define fld_INTERLACE_DETECTED_def 0x00000000
#define fld_VS_LINE_COUNT_def 0x00000000
#define fld_VS_DETECTED_LINES_def 0x00000000
#define fld_VS_ITU656_VB_def 0x00000000
#define fld_VBI_CC_DATA_def 0x00000000
#define fld_VBI_CC_WT_def 0x00000000
#define fld_VBI_CC_WT_ACK_def 0x00000000
#define fld_VBI_CC_HOLD_def 0x00000000
#define fld_VBI_DECODE_EN_def 0x00000000
#define fld_VBI_CC_DTO_P_def 0x00001802
#define fld_VBI_20BIT_DTO_P_def 0x0000155c
#define fld_VBI_CC_LEVEL_def 0x0000003f
#define fld_VBI_20BIT_LEVEL_def 0x00000059
#define fld_VBI_CLK_RUNIN_GAIN_def 0x0000010f
#define fld_H_VBI_WIND_START_def 0x00000041
#define fld_H_VBI_WIND_END_def 0x00000366
#define fld_V_VBI_WIND_START_def 0x0D
#define fld_V_VBI_WIND_END_def 0x24
#define fld_VBI_20BIT_DATA0_def 0x00000000
#define fld_VBI_20BIT_DATA1_def 0x00000000
#define fld_VBI_20BIT_WT_def 0x00000000
#define fld_VBI_20BIT_WT_ACK_def 0x00000000
#define fld_VBI_20BIT_HOLD_def 0x00000000
#define fld_VBI_CAPTURE_ENABLE_def 0x00000000
#define fld_VBI_EDS_DATA_def 0x00000000
#define fld_VBI_EDS_WT_def 0x00000000
#define fld_VBI_EDS_WT_ACK_def 0x00000000
#define fld_VBI_EDS_HOLD_def 0x00000000
#define fld_VBI_SCALING_RATIO_def 0x00010000
#define fld_VBI_ALIGNER_ENABLE_def 0x00000000
#define fld_H_ACTIVE_START_def 0x00000070
#define fld_H_ACTIVE_END_def 0x000002f0
#define fld_V_ACTIVE_START_def ((22-4)*2+1)
#define fld_V_ACTIVE_END_def ((22+240-4)*2+2)
#define fld_CH_HEIGHT_def 0x000000CD
#define fld_CH_KILL_LEVEL_def 0x000000C0
#define fld_CH_AGC_ERROR_LIM_def 0x00000002
#define fld_CH_AGC_FILTER_EN_def 0x00000000
#define fld_CH_AGC_LOOP_SPEED_def 0x00000000
#define fld_HUE_ADJ_def 0x00000000
#define fld_STANDARD_SEL_def 0x00000000
#define fld_STANDARD_YC_def 0x00000000
#define fld_ADC_PDWN_def 0x00000001
#define fld_INPUT_SELECT_def 0x00000000
#define fld_ADC_PREFLO_def 0x00000003
#define fld_H_SYNC_PULSE_WIDTH_def 0x00000000
#define fld_HS_GENLOCKED_def 0x00000000
#define fld_HS_SYNC_IN_WIN_def 0x00000000
#define fld_VIN_ASYNC_RST_def 0x00000001
#define fld_DVS_ASYNC_RST_def 0x00000001
/* Vendor IDs: */
#define fld_VIP_VENDOR_ID_def 0x00001002
#define fld_VIP_DEVICE_ID_def 0x00004d54
#define fld_VIP_REVISION_ID_def 0x00000001
/* AGC Delay Register */
#define fld_BLACK_INT_START_def 0x00000031
#define fld_BLACK_INT_LENGTH_def 0x0000000f
#define fld_UV_INT_START_def 0x0000003b
#define fld_U_INT_LENGTH_def 0x0000000f
#define fld_V_INT_LENGTH_def 0x0000000f
#define fld_CRDR_ACTIVE_GAIN_def 0x0000007a
#define fld_CBDB_ACTIVE_GAIN_def 0x000000ac
#define fld_DVS_DIRECTION_def 0x00000000
#define fld_DVS_VBI_CARD8_SWAP_def 0x00000000
#define fld_DVS_CLK_SELECT_def 0x00000000
#define fld_CONTINUOUS_STREAM_def 0x00000000
#define fld_DVSOUT_CLK_DRV_def 0x00000001
#define fld_DVSOUT_DATA_DRV_def 0x00000001
#define fld_COMB_CNTL0_def 0x09438090
#define fld_COMB_CNTL1_def 0x00000010
#define fld_COMB_CNTL2_def 0x16161010
#define fld_COMB_LENGTH_def 0x0718038A
#define fld_SYNCTIP_REF0_def 0x00000037
#define fld_SYNCTIP_REF1_def 0x00000029
#define fld_CLAMP_REF_def 0x0000003B
#define fld_AGC_PEAKWHITE_def 0x000000FF
#define fld_VBI_PEAKWHITE_def 0x000000D2
#define fld_WPA_THRESHOLD_def 0x000003B0
#define fld_WPA_TRIGGER_LO_def 0x000000B4
#define fld_WPA_TRIGGER_HIGH_def 0x0000021C
#define fld_LOCKOUT_START_def 0x00000206
#define fld_LOCKOUT_END_def 0x00000021
#define fld_CH_DTO_INC_def 0x00400000
#define fld_PLL_SGAIN_def 0x00000001
#define fld_PLL_FGAIN_def 0x00000002
#define fld_CR_BURST_GAIN_def 0x0000007a
#define fld_CB_BURST_GAIN_def 0x000000ac
#define fld_VERT_LOCKOUT_START_def 0x00000207
#define fld_VERT_LOCKOUT_END_def 0x0000000E
#define fld_H_IN_WIND_START_def 0x00000070
#define fld_V_IN_WIND_START_def 0x00000027
#define fld_H_OUT_WIND_WIDTH_def 0x000002f4
#define fld_V_OUT_WIND_WIDTH_def 0x000000f0
#define fld_HS_LINE_TOTAL_def 0x0000038E
#define fld_MIN_PULSE_WIDTH_def 0x0000002F
#define fld_MAX_PULSE_WIDTH_def 0x00000046
#define fld_WIN_CLOSE_LIMIT_def 0x0000004D
#define fld_WIN_OPEN_LIMIT_def 0x000001B7
#define fld_VSYNC_INT_TRIGGER_def 0x000002AA
#define fld_VSYNC_INT_HOLD_def 0x0000001D
#define fld_VIN_M0_def 0x00000039
#define fld_VIN_N0_def 0x0000014c
#define fld_MNFLIP_EN_def 0x00000000
#define fld_VIN_P_def 0x00000006
#define fld_REG_CLK_SEL_def 0x00000000
#define fld_VIN_M1_def 0x00000000
#define fld_VIN_N1_def 0x00000000
#define fld_VIN_DRIVER_SEL_def 0x00000000
#define fld_VIN_MNFLIP_REQ_def 0x00000000
#define fld_VIN_MNFLIP_DONE_def 0x00000000
#define fld_TV_LOCK_TO_VIN_def 0x00000000
#define fld_TV_P_FOR_WINCLK_def 0x00000004
#define fld_VINRST_def 0x00000001
#define fld_VIN_CLK_SEL_def 0x00000000
#define fld_VS_FIELD_BLANK_START_def 0x00000206
#define fld_VS_FIELD_BLANK_END_def 0x0000000A
/*#define fld_VS_FIELD_IDLOCATION_def 0x00000105 */
#define fld_VS_FIELD_IDLOCATION_def 0x00000001
#define fld_VS_FRAME_TOTAL_def 0x00000217
#define fld_SYNC_TIP_START_def 0x00000372
#define fld_SYNC_TIP_LENGTH_def 0x0000000F
#define fld_GAIN_FORCE_DATA_def 0x00000000
#define fld_GAIN_FORCE_EN_def 0x00000000
#define fld_I_CLAMP_SEL_def 0x00000003
#define fld_I_AGC_SEL_def 0x00000001
#define fld_EXT_CLAMP_CAP_def 0x00000001
#define fld_EXT_AGC_CAP_def 0x00000001
#define fld_DECI_DITHER_EN_def 0x00000001
#define fld_ADC_PREFHI_def 0x00000000
#define fld_ADC_CH_GAIN_SEL_def 0x00000001
#define fld_HS_PLL_SGAIN_def 0x00000003
#define fld_NREn_def 0x00000000
#define fld_NRGainCntl_def 0x00000000
#define fld_NRBWTresh_def 0x00000000
#define fld_NRGCTresh_def 0x00000000
#define fld_NRCoefDespeclMode_def 0x00000000
#define fld_GPIO_5_OE_def 0x00000000
#define fld_GPIO_6_OE_def 0x00000000
#define fld_GPIO_5_OUT_def 0x00000000
#define fld_GPIO_6_OUT_def 0x00000000
/* End of field default values. */
#endif /* RADEON_H */
|