aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/sis/oem300.h
diff options
context:
space:
mode:
authorThomas Winischhofer <thomas@winischhofer.net>2005-09-09 16:04:45 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-09 16:58:01 -0400
commit544393fe584d333480659a4bed30f5295355df11 (patch)
tree873b30c67cdbb5cb93e6fd816692db312ed6ddd6 /drivers/video/sis/oem300.h
parent5c06e2aa6339112befdc87b350b8bf712890d7a7 (diff)
[PATCH] sisfb update
This lifts sisfb from version 1.7.17 to version 1.8.9. Changes include: - Added support for XGI V3XT, V5, V8, Z7 chipsets, including POSTing of all of these chipsets. - Added support for latest SiS chipsets (761). - Added support for SiS76x memory "hybrid" mode. - Added support for new LCD resolutions (eg 1280x854, 856x480). - Fixed support for 320x240 STN panels (for embedded devices). - Fixed many HDTV modes (525p, 750p, 1080i). - Fixed PCI config register reading/writing to use proper kernel functions for this purpose. - Fixed PCI ROM handling to use the kernel's proper functions. - Removed lots of "typedef"s. - Removed lots of code which was for X.org/XFree86 only. - Fixed coding style in many places. - Removed lots of 2.4 cruft. - Reduced stack size by unifying two previously separate structs into one. - Added new hooks for memory allocation (for DRM). Now the driver can truly handle multiple cards, including memory management. - Fixed numerous minor bugs. Signed-off-by: Thomas Winischhofer <thomas@winischhofer.net> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/sis/oem300.h')
-rw-r--r--drivers/video/sis/oem300.h335
1 files changed, 158 insertions, 177 deletions
diff --git a/drivers/video/sis/oem300.h b/drivers/video/sis/oem300.h
index b1358b750f53..b73f26840143 100644
--- a/drivers/video/sis/oem300.h
+++ b/drivers/video/sis/oem300.h
@@ -3,7 +3,7 @@
3/* 3/*
4 * OEM Data for 300 series 4 * OEM Data for 300 series
5 * 5 *
6 * Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria 6 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
7 * 7 *
8 * If distributed as part of the Linux kernel, the following license terms 8 * If distributed as part of the Linux kernel, the following license terms
9 * apply: 9 * apply:
@@ -50,7 +50,7 @@
50 * 50 *
51 */ 51 */
52 52
53static const UCHAR SiS300_OEMTVDelay301[8][4] = 53static const unsigned char SiS300_OEMTVDelay301[8][4] =
54{ 54{
55 {0x08,0x08,0x08,0x08}, 55 {0x08,0x08,0x08,0x08},
56 {0x08,0x08,0x08,0x08}, 56 {0x08,0x08,0x08,0x08},
@@ -62,7 +62,7 @@ static const UCHAR SiS300_OEMTVDelay301[8][4] =
62 {0x20,0x20,0x20,0x20} 62 {0x20,0x20,0x20,0x20}
63}; 63};
64 64
65static const UCHAR SiS300_OEMTVDelayLVDS[8][4] = 65static const unsigned char SiS300_OEMTVDelayLVDS[8][4] =
66{ 66{
67 {0x20,0x20,0x20,0x20}, 67 {0x20,0x20,0x20,0x20},
68 {0x20,0x20,0x20,0x20}, 68 {0x20,0x20,0x20,0x20},
@@ -74,7 +74,7 @@ static const UCHAR SiS300_OEMTVDelayLVDS[8][4] =
74 {0x20,0x20,0x20,0x20} 74 {0x20,0x20,0x20,0x20}
75}; 75};
76 76
77static const UCHAR SiS300_OEMTVFlicker[8][4] = 77static const unsigned char SiS300_OEMTVFlicker[8][4] =
78{ 78{
79 {0x00,0x00,0x00,0x00}, 79 {0x00,0x00,0x00,0x00},
80 {0x00,0x00,0x00,0x00}, 80 {0x00,0x00,0x00,0x00},
@@ -86,25 +86,7 @@ static const UCHAR SiS300_OEMTVFlicker[8][4] =
86 {0x00,0x00,0x00,0x00} 86 {0x00,0x00,0x00,0x00}
87}; 87};
88 88
89#if 0 /* TW: Not used */ 89static const unsigned char SiS300_OEMLCDDelay2[64][4] = /* for 301/301b/302b/301LV/302LV */
90static const UCHAR SiS300_OEMLCDDelay1[12][4]={
91 {0x2c,0x2c,0x2c,0x2c},
92 {0x20,0x20,0x20,0x20},
93 {0x20,0x20,0x20,0x20},
94 {0x2c,0x2c,0x2c,0x2c},
95 {0x2c,0x2c,0x2c,0x2c},
96 {0x20,0x20,0x20,0x20},
97 {0x20,0x20,0x20,0x20},
98 {0x24,0x24,0x24,0x24},
99 {0x24,0x24,0x24,0x24},
100 {0x20,0x20,0x20,0x20},
101 {0x20,0x20,0x20,0x20},
102 {0x24,0x24,0x24,0x24}
103};
104#endif
105
106/* From 630/301B BIOS */
107static const UCHAR SiS300_OEMLCDDelay2[64][4] = /* for 301/301b/302b/301LV/302LV */
108{ 90{
109 {0x20,0x20,0x20,0x20}, 91 {0x20,0x20,0x20,0x20},
110 {0x20,0x20,0x20,0x20}, 92 {0x20,0x20,0x20,0x20},
@@ -172,8 +154,7 @@ static const UCHAR SiS300_OEMLCDDelay2[64][4] = /* for 301/301b/302b/301LV/302
172 {0x20,0x20,0x20,0x20} 154 {0x20,0x20,0x20,0x20}
173}; 155};
174 156
175/* From 300/301LV BIOS */ 157static const unsigned char SiS300_OEMLCDDelay4[12][4] =
176static const UCHAR SiS300_OEMLCDDelay4[12][4] =
177{ 158{
178 {0x2c,0x2c,0x2c,0x2c}, 159 {0x2c,0x2c,0x2c,0x2c},
179 {0x20,0x20,0x20,0x20}, 160 {0x20,0x20,0x20,0x20},
@@ -189,8 +170,7 @@ static const UCHAR SiS300_OEMLCDDelay4[12][4] =
189 {0x24,0x24,0x24,0x24} 170 {0x24,0x24,0x24,0x24}
190}; 171};
191 172
192/* From 300/301LV BIOS */ 173static const unsigned char SiS300_OEMLCDDelay5[32][4] =
193static const UCHAR SiS300_OEMLCDDelay5[32][4] =
194{ 174{
195 {0x20,0x20,0x20,0x20}, 175 {0x20,0x20,0x20,0x20},
196 {0x20,0x20,0x20,0x20}, 176 {0x20,0x20,0x20,0x20},
@@ -226,8 +206,8 @@ static const UCHAR SiS300_OEMLCDDelay5[32][4] =
226 {0x20,0x20,0x20,0x20}, 206 {0x20,0x20,0x20,0x20},
227}; 207};
228 208
229/* Added for LVDS */ 209static const unsigned char SiS300_OEMLCDDelay3[64][4] = /* For LVDS */
230static const UCHAR SiS300_OEMLCDDelay3[64][4] = { /* For LVDS */ 210{
231 {0x20,0x20,0x20,0x20}, 211 {0x20,0x20,0x20,0x20},
232 {0x20,0x20,0x20,0x20}, 212 {0x20,0x20,0x20,0x20},
233 {0x20,0x20,0x20,0x20}, 213 {0x20,0x20,0x20,0x20},
@@ -294,7 +274,7 @@ static const UCHAR SiS300_OEMLCDDelay3[64][4] = { /* For LVDS */
294 {0x20,0x20,0x20,0x20} 274 {0x20,0x20,0x20,0x20}
295}; 275};
296 276
297static const UCHAR SiS300_Phase1[8][5][4] = 277static const unsigned char SiS300_Phase1[8][5][4] =
298{ 278{
299 { 279 {
300 {0x21,0xed,0x00,0x08}, 280 {0x21,0xed,0x00,0x08},
@@ -354,11 +334,10 @@ static const UCHAR SiS300_Phase1[8][5][4] =
354 } 334 }
355}; 335};
356 336
357 337static const unsigned char SiS300_Phase2[8][5][4] =
358static const UCHAR SiS300_Phase2[8][5][4] =
359{ 338{
360 { 339 {
361 {0x21,0xed,0x00,0x08}, 340 {0x21,0xed,0x00,0x08},
362 {0x21,0xed,0x8a,0x08}, 341 {0x21,0xed,0x8a,0x08},
363 {0x21,0xed,0x8a,0x08}, 342 {0x21,0xed,0x8a,0x08},
364 {0x21,0xed,0x8a,0x08}, 343 {0x21,0xed,0x8a,0x08},
@@ -372,42 +351,42 @@ static const UCHAR SiS300_Phase2[8][5][4] =
372 {0x2a,0x05,0xd3,0x00} 351 {0x2a,0x05,0xd3,0x00}
373 }, 352 },
374 { 353 {
375 {0x2a,0x05,0xd3,0x00}, 354 {0x2a,0x05,0xd3,0x00},
376 {0x2a,0x05,0xd3,0x00}, 355 {0x2a,0x05,0xd3,0x00},
377 {0x2a,0x05,0xd3,0x00}, 356 {0x2a,0x05,0xd3,0x00},
378 {0x2a,0x05,0xd3,0x00}, 357 {0x2a,0x05,0xd3,0x00},
379 {0x2a,0x05,0xd3,0x00} 358 {0x2a,0x05,0xd3,0x00}
380 }, 359 },
381 { 360 {
382 {0x2a,0x05,0xd3,0x00}, 361 {0x2a,0x05,0xd3,0x00},
383 {0x2a,0x05,0xd3,0x00}, 362 {0x2a,0x05,0xd3,0x00},
384 {0x2a,0x05,0xd3,0x00}, 363 {0x2a,0x05,0xd3,0x00},
385 {0x2a,0x05,0xd3,0x00}, 364 {0x2a,0x05,0xd3,0x00},
386 {0x2a,0x05,0xd3,0x00} 365 {0x2a,0x05,0xd3,0x00}
387 }, 366 },
388 { 367 {
389 {0x21,0xed,0x00,0x08}, 368 {0x21,0xed,0x00,0x08},
390 {0x21,0xed,0x8a,0x08}, 369 {0x21,0xed,0x8a,0x08},
391 {0x21,0xed,0x8a,0x08}, 370 {0x21,0xed,0x8a,0x08},
392 {0x21,0xed,0x8a,0x08}, 371 {0x21,0xed,0x8a,0x08},
393 {0x21,0xed,0x8a,0x08} 372 {0x21,0xed,0x8a,0x08}
394 }, 373 },
395 { 374 {
396 {0x2a,0x05,0xd3,0x00}, 375 {0x2a,0x05,0xd3,0x00},
397 {0x2a,0x05,0xd3,0x00}, 376 {0x2a,0x05,0xd3,0x00},
398 {0x2a,0x05,0xd3,0x00}, 377 {0x2a,0x05,0xd3,0x00},
399 {0x2a,0x05,0xd3,0x00}, 378 {0x2a,0x05,0xd3,0x00},
400 {0x2a,0x05,0xd3,0x00} 379 {0x2a,0x05,0xd3,0x00}
401 }, 380 },
402 { 381 {
403 {0x2a,0x05,0xd3,0x00}, 382 {0x2a,0x05,0xd3,0x00},
404 {0x2a,0x05,0xd3,0x00}, 383 {0x2a,0x05,0xd3,0x00},
405 {0x2a,0x05,0xd3,0x00}, 384 {0x2a,0x05,0xd3,0x00},
406 {0x2a,0x05,0xd3,0x00}, 385 {0x2a,0x05,0xd3,0x00},
407 {0x2a,0x05,0xd3,0x00} 386 {0x2a,0x05,0xd3,0x00}
408 }, 387 },
409 { 388 {
410 {0x2a,0x05,0xd3,0x00}, 389 {0x2a,0x05,0xd3,0x00},
411 {0x2a,0x05,0xd3,0x00}, 390 {0x2a,0x05,0xd3,0x00},
412 {0x2a,0x05,0xd3,0x00}, 391 {0x2a,0x05,0xd3,0x00},
413 {0x2a,0x05,0xd3,0x00}, 392 {0x2a,0x05,0xd3,0x00},
@@ -415,7 +394,7 @@ static const UCHAR SiS300_Phase2[8][5][4] =
415 } 394 }
416}; 395};
417 396
418static const UCHAR SiS300_Filter1[10][16][4] = 397static const unsigned char SiS300_Filter1[10][16][4] =
419{ 398{
420 { 399 {
421 {0x00,0xf4,0x10,0x38}, 400 {0x00,0xf4,0x10,0x38},
@@ -599,7 +578,7 @@ static const UCHAR SiS300_Filter1[10][16][4] =
599 }, 578 },
600}; 579};
601 580
602static const UCHAR SiS300_Filter2[10][9][7] = 581static const unsigned char SiS300_Filter2[10][9][7] =
603{ 582{
604 { 583 {
605 {0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46}, 584 {0xFF,0x03,0x02,0xF6,0xFC,0x27,0x46},
@@ -714,142 +693,144 @@ static const UCHAR SiS300_Filter2[10][9][7] =
714}; 693};
715 694
716/* Custom data for Barco iQ Pro R300 */ 695/* Custom data for Barco iQ Pro R300 */
717static const UCHAR barco_p1[2][9][7][3] = { 696static const unsigned char barco_p1[2][9][7][3] =
718 { 697{
719 { { 0x16, 0xcf, 0x00 }, 698 {
720 { 0x18, 0x00, 0x00 }, 699 {
721 { 0x1a, 0xe7, 0x00 }, 700 { 0x16, 0xcf, 0x00 },
722 { 0x1b, 0x26, 0x00 }, 701 { 0x18, 0x00, 0x00 },
723 { 0x1c, 0xff, 0x00 }, 702 { 0x1a, 0xe7, 0x00 },
724 { 0x1d, 0x1c, 0x00 }, 703 { 0x1b, 0x26, 0x00 },
725 { 0x1e, 0x19, 0x00 } 704 { 0x1c, 0xff, 0x00 },
726 }, 705 { 0x1d, 0x1c, 0x00 },
727 { 706 { 0x1e, 0x19, 0x00 }
728 { 0x16, 0xcf, 0x00 }, 707 },
729 { 0x18, 0x00, 0x00 }, 708 {
730 { 0x1a, 0xe7, 0x00 }, 709 { 0x16, 0xcf, 0x00 },
731 { 0x1b, 0x1e, 0x00 }, 710 { 0x18, 0x00, 0x00 },
732 { 0x1c, 0xff, 0x00 }, 711 { 0x1a, 0xe7, 0x00 },
733 { 0x1d, 0x1c, 0x00 }, 712 { 0x1b, 0x1e, 0x00 },
734 { 0x1e, 0x16, 0x00 } 713 { 0x1c, 0xff, 0x00 },
735 }, 714 { 0x1d, 0x1c, 0x00 },
736 { 715 { 0x1e, 0x16, 0x00 }
737 { 0x16, 0xcf, 0x00 }, 716 },
738 { 0x1a, 0xe7, 0x00 }, 717 {
739 { 0x1b, 0x26, 0x00 }, 718 { 0x16, 0xcf, 0x00 },
740 { 0x1c, 0xff, 0x00 }, 719 { 0x1a, 0xe7, 0x00 },
741 { 0x1d, 0x1c, 0x00 }, 720 { 0x1b, 0x26, 0x00 },
742 { 0x1e, 0x19, 0x00 }, 721 { 0x1c, 0xff, 0x00 },
743 { 0, 0, 0 } 722 { 0x1d, 0x1c, 0x00 },
744 }, 723 { 0x1e, 0x19, 0x00 },
745 { 724 { 0, 0, 0 }
746 { 0, 0, 0 } 725 },
747 }, 726 {
748 { 727 { 0, 0, 0 }
749 { 0x16, 0xcf, 0x00 }, 728 },
750 { 0x1a, 0xe7, 0x00 }, 729 {
751 { 0x1b, 0x26, 0x00 }, 730 { 0x16, 0xcf, 0x00 },
752 { 0x1c, 0xff, 0x00 }, 731 { 0x1a, 0xe7, 0x00 },
753 { 0x1d, 0x1c, 0x00 }, 732 { 0x1b, 0x26, 0x00 },
754 { 0x1e, 0x1e, 0x00 }, 733 { 0x1c, 0xff, 0x00 },
755 { 0, 0, 0 } 734 { 0x1d, 0x1c, 0x00 },
756 }, 735 { 0x1e, 0x1e, 0x00 },
757 { 736 { 0, 0, 0 }
758 { 0x16, 0xd1, 0x00 }, 737 },
759 { 0x18, 0x00, 0x00 }, 738 {
760 { 0x1a, 0xe7, 0x00 }, 739 { 0x16, 0xd1, 0x00 },
761 { 0x1b, 0x11, 0x00 }, 740 { 0x18, 0x00, 0x00 },
762 { 0x1c, 0xff, 0x00 }, 741 { 0x1a, 0xe7, 0x00 },
763 { 0x1d, 0x1c, 0x00 }, 742 { 0x1b, 0x11, 0x00 },
764 { 0x1e, 0x26, 0x00 } 743 { 0x1c, 0xff, 0x00 },
765 }, 744 { 0x1d, 0x1c, 0x00 },
766 { 745 { 0x1e, 0x26, 0x00 }
767 { 0x16, 0xd1, 0x00 }, 746 },
768 { 0x1a, 0xe7, 0x00 }, 747 {
769 { 0x1b, 0x26, 0x00 }, 748 { 0x16, 0xd1, 0x00 },
770 { 0x1c, 0xff, 0x00 }, 749 { 0x1a, 0xe7, 0x00 },
771 { 0x1d, 0x1c, 0x00 }, 750 { 0x1b, 0x26, 0x00 },
772 { 0x1e, 0x30, 0x00 }, 751 { 0x1c, 0xff, 0x00 },
773 { 0, 0, 0 } 752 { 0x1d, 0x1c, 0x00 },
774 }, 753 { 0x1e, 0x30, 0x00 },
775 { 754 { 0, 0, 0 }
776 { 0x16, 0x00, 0x00 }, 755 },
777 { 0x17, 0xa0, 0x00 }, 756 {
778 { 0x1a, 0xa0, 0x00 }, 757 { 0x16, 0x00, 0x00 },
779 { 0x1b, 0x2a, 0x00 }, 758 { 0x17, 0xa0, 0x00 },
780 { 0x1c, 0xff, 0x00 }, 759 { 0x1a, 0xa0, 0x00 },
781 { 0x1d, 0x1c, 0x00 }, 760 { 0x1b, 0x2a, 0x00 },
782 { 0, 0, 0 } 761 { 0x1c, 0xff, 0x00 },
783 }, 762 { 0x1d, 0x1c, 0x00 },
784 { 763 { 0, 0, 0 }
785 { 0x16, 0x00, 0x00 }, 764 },
786 { 0x17, 0xaa, 0x00 }, 765 {
787 { 0x1a, 0xa0, 0x00 }, 766 { 0x16, 0x00, 0x00 },
788 { 0x1b, 0x2a, 0x00 }, 767 { 0x17, 0xaa, 0x00 },
789 { 0x1c, 0xff, 0x00 }, 768 { 0x1a, 0xa0, 0x00 },
790 { 0x1d, 0x1c, 0x00 }, 769 { 0x1b, 0x2a, 0x00 },
791 { 0, 0, 0 } 770 { 0x1c, 0xff, 0x00 },
792 } 771 { 0x1d, 0x1c, 0x00 },
793 }, 772 { 0, 0, 0 }
794 { 773 }
795 { 774 },
796 { 0x16, 0xcf, 0x00 }, 775 {
797 { 0x18, 0x00, 0x00 }, 776 {
798 { 0x1a, 0xe7, 0x00 }, 777 { 0x16, 0xcf, 0x00 },
799 { 0x1b, 0x26, 0x00 }, 778 { 0x18, 0x00, 0x00 },
800 { 0x1c, 0xff, 0x00 }, 779 { 0x1a, 0xe7, 0x00 },
801 { 0x1d, 0x1c, 0x00 }, 780 { 0x1b, 0x26, 0x00 },
802 { 0x1e, 0x19, 0x00 } 781 { 0x1c, 0xff, 0x00 },
803 }, 782 { 0x1d, 0x1c, 0x00 },
804 { 783 { 0x1e, 0x19, 0x00 }
805 { 0, 0, 0 } 784 },
806 }, 785 {
807 { 786 { 0, 0, 0 }
808 { 0x16, 0xcf, 0x00 }, 787 },
809 { 0x18, 0x00, 0x00 }, 788 {
810 { 0x1a, 0xe7, 0x00 }, 789 { 0x16, 0xcf, 0x00 },
811 { 0x1b, 0x26, 0x00 }, 790 { 0x18, 0x00, 0x00 },
812 { 0x1c, 0xff, 0x00 }, 791 { 0x1a, 0xe7, 0x00 },
813 { 0x1d, 0x1c, 0x00 }, 792 { 0x1b, 0x26, 0x00 },
814 { 0x1e, 0x19, 0x00 }, 793 { 0x1c, 0xff, 0x00 },
815 }, 794 { 0x1d, 0x1c, 0x00 },
816 { 795 { 0x1e, 0x19, 0x00 },
817 { 0, 0, 0 } 796 },
818 }, 797 {
819 { 798 { 0, 0, 0 }
820 { 0x16, 0xcf, 0x00 }, 799 },
821 { 0x18, 0x00, 0x00 }, 800 {
822 { 0x1a, 0xe7, 0x00 }, 801 { 0x16, 0xcf, 0x00 },
823 { 0x1b, 0x26, 0x00 }, 802 { 0x18, 0x00, 0x00 },
824 { 0x1c, 0xff, 0x00 }, 803 { 0x1a, 0xe7, 0x00 },
825 { 0x1d, 0x1c, 0x00 }, 804 { 0x1b, 0x26, 0x00 },
826 { 0x1e, 0x1e, 0x00 } 805 { 0x1c, 0xff, 0x00 },
827 }, 806 { 0x1d, 0x1c, 0x00 },
828 { 807 { 0x1e, 0x1e, 0x00 }
829 { 0x16, 0xd1, 0x00 }, 808 },
830 { 0x18, 0x00, 0x00 }, 809 {
831 { 0x1a, 0xe6, 0x00 }, 810 { 0x16, 0xd1, 0x00 },
832 { 0x1b, 0x11, 0x00 }, 811 { 0x18, 0x00, 0x00 },
833 { 0x1c, 0xff, 0x00 }, 812 { 0x1a, 0xe6, 0x00 },
834 { 0x1d, 0x1c, 0x00 }, 813 { 0x1b, 0x11, 0x00 },
835 { 0x1e, 0x26, 0x00 } 814 { 0x1c, 0xff, 0x00 },
836 }, 815 { 0x1d, 0x1c, 0x00 },
837 { 816 { 0x1e, 0x26, 0x00 }
838 { 0x18, 0x00, 0x00 }, 817 },
839 { 0x1a, 0xe0, 0x00 }, 818 {
840 { 0x1b, 0x26, 0x00 }, 819 { 0x18, 0x00, 0x00 },
841 { 0x1c, 0xff, 0x00 }, 820 { 0x1a, 0xe0, 0x00 },
842 { 0x1d, 0x1c, 0x00 }, 821 { 0x1b, 0x26, 0x00 },
843 { 0x1e, 0x30, 0x00 }, 822 { 0x1c, 0xff, 0x00 },
844 { 0, 0, 0 } 823 { 0x1d, 0x1c, 0x00 },
845 }, 824 { 0x1e, 0x30, 0x00 },
846 { 825 { 0, 0, 0 }
847 { 0, 0, 0 } 826 },
848 }, 827 {
849 { 828 { 0, 0, 0 }
850 { 0, 0, 0 } 829 },
851 } 830 {
852 } 831 { 0, 0, 0 }
832 }
833 }
853}; 834};
854 835
855 836