*** linux-pmac/drivers/char/pmc-imstt.c.orig.new Wed Mar 4 17:49:11 1998 --- linux-pmac/drivers/char/pmc-imstt.c Wed Mar 18 21:11:54 1998 *************** *** 3,8 **** --- 3,9 ---- * * Copyright (C) 1997 Sigurdur Asgeirsson * Modified by Danilo Beuche 1998 + * Some register values added by Damien Doligez, INRIA Rocquencourt * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License *************** *** 263,269 **** }; ! struct ims_crmodevals imsmode_6 = { 640, { --- 264,321 ---- }; ! #if 0 ! struct ims_crmodevals imsmode_1 = /* 512 x 384 @ 60 Hz interlaced */ ! { ! NTSC ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_2 = /* 512 x 384 @ 60 Hz */ ! { ! 512, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x02, 0x0006, 0x0026, 0x0028, 0x0003, 0x0016, 0x0196, 0x0197 }, ! }, ! { 0xec, 0x2a, 0xf3 }, ! { ! { 0x3c, 0xf3 }, ! { 0x3b, 0xf3 }, ! { 0x39, 0xf3 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! #if 0 ! struct ims_crmodevals imsmode_3 = /* 640 x 480 @ 50 Hz interlaced */ ! { ! PAL ! }; ! ! struct ims_crmodevals imsmode_4 = /* 640 x 480 @ 60 Hz interlaced */ ! { ! NTSC ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_5 = /* 640 x 480 @ 60 Hz */ ! { ! 640, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x06, 0x0008, 0x0030, 0x0032, 0x0002, 0x0023, 0x0203, 0x020d }, ! }, ! { 0xe8, 0x15, 0xf3 }, ! { ! { 0x3c, 0xf3 }, ! { 0x3a, 0xf3 }, ! { 0x39, 0xf3 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_6 = /* 640 x 480 @ 67 Hz */ { 640, { *************** *** 280,286 **** { 0x78, 0x13, 0x02, 0x02 }, }; ! struct ims_crmodevals imsmode_13 = { 832, { --- 332,432 ---- { 0x78, 0x13, 0x02, 0x02 }, }; ! struct ims_crmodevals imsmode_7 = /* 640 x 870 @ 75 Hz */ ! { ! 640, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x05, 0x0009, 0x0031, 0x0034, 0x0003, 0x002d, 0x0393, 0x0396 }, ! }, ! { 0xfe, 0x3e, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! #if 0 ! struct ims_crmodevals imsmode_8 = /* 768 x 576 @ 50 Hz interlaced */ ! { ! PAL full frame ! }; ! ! struct ims_crmodevals imsmode_9 = /* 800 x 600 @ 56 Hz */ ! { ! Not available under MacOS with this board ?? ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_10 = /* 800 x 600 @ 60 Hz */ ! { ! 800, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x08, 0x000c, 0x003e, 0x0042, 0x0004, 0x001b, 0x0273, 0x0274 }, ! }, ! { 0xfc, 0x3a, 0xf2 }, ! { ! { 0x3a, 0xf3 }, ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_11 = /* 800 x 600 @ 72 Hz */ ! { ! 800, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x08, 0x000b, 0x003d, 0x0041, 0x0006, 0x001d, 0x0275, 0x29a }, ! }, ! { 0xfd, 0x3a, 0xf2 }, ! { ! { 0x3a, 0xf3 }, ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_12 = /* 800 x 600 @ 75 Hz */ ! { ! 800, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x05, 0x000e, 0x0040, 0x0042, 0x0003, 0x0018, 0x0270, 0x0271 }, ! }, ! { 0xf6, 0x2e, 0xf2 }, ! { ! { 0x3a, 0xf3 }, ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! #if 0 ! struct ims_crmodevals imsmode_?? = /* 800 x 600 @ 85 Hz */ ! { ! 800, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x04, 0x000d, 0x003f, 0x0042, 0x0003, 0x001e, 0x0270, 0x0277 }, ! }, ! { 0xfe, 0x3e, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 } ! }, ! { 0, 0, 0, 0 } ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_13 = /* 832 x 624 @ 75 Hz */ { 832, { *************** *** 295,301 **** }, { 0x3E, 0x0A, 0x01, 0x02 } }; ! struct ims_crmodevals imsmode_17 = { 1024, { --- 441,496 ---- }, { 0x3E, 0x0A, 0x01, 0x02 } }; ! ! struct ims_crmodevals imsmode_14 = /* 1024 x 768 @ 60 Hz */ ! { ! 1024, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x09, 0x0012, 0x0052, 0x0054, 0x0006, 0x0023, 0x0323, 0x0326 }, ! }, ! { 0xeb, 0x28, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_15 = /* 1024 x 768 @ 70 Hz */ ! { ! 1024, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x09, 0x0011, 0x0051, 0x0053, 0x0006, 0x0023, 0x0323, 0x0326 }, ! }, ! { 0xf4, 0x30, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_16 = /* 1024 x 768 @ 75 Hz VESA */ ! { ! 1024, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x06, 0x0010, 0x0050, 0x0052, 0x0003, 0x001f, 0x031f, 0x0320 }, ! }, ! { 0xf9, 0x36, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 }, ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_17 = /* 1024 x 768 @ 75 Hz */ { 1024, { *************** *** 310,316 **** }, { 0x07, 0x00, 0x01, 0x02 } }; ! struct ims_crmodevals imsmode_18 = { 1152, { --- 505,530 ---- }, { 0x07, 0x00, 0x01, 0x02 } }; ! ! #if 0 ! struct ims_crmodevals imsmode_?? = /* 1024 x 768 @ 85 Hz */ ! { ! 1024, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x06, 0x0012, 0x0052, 0x0056, 0x0003, 0x0027, 0x0327, 0x328 }, ! }, ! { 0xed, 0x20, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 } ! }, ! { 0, 0, 0, 0 } ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_18 = /* 1152 x 870 @ 75 Hz */ { 1152, { *************** *** 325,331 **** }, { 0, 0, 0, 0 } }; ! struct ims_crmodevals imsmode_19 = { 1280, { --- 539,564 ---- }, { 0, 0, 0, 0 } }; ! ! #if 0 ! struct ims_crmodevals imsmode_?? = /* 1280 x 960 @ 60 Hz */ ! { ! 1280, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x07, 0x001a, 0x006a, 0x0071, 0x0003, 0x0027, 0x03e7, 0x03e8 }, ! }, ! { 0xf8, 0x30, 0xf1 }, ! { ! { 0x39, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 } ! }, ! { 0, 0, 0, 0 } ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_19 = /* 1280 x 960 @ 75 Hz */ { 1280, { *************** *** 340,346 **** }, { 0, 0, 0, 0 } }; ! struct ims_crmodevals imsmode_20 = { 1280, { --- 573,614 ---- }, { 0, 0, 0, 0 } }; ! ! #if 0 ! struct ims_crmodevals imsmode_?? = /* 1280 x 960 @ 85 Hz */ ! { ! 1280, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x0a, 0x0017, 0x0067, 0x006c, 0x0003, 0x0032, 0x03f2, 0x03f3 }, ! }, ! { 0xf0, 0x2b, 0xf0 }, ! { ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 }, ! { 0x38, 0xf1 } ! }, ! { 0, 0, 0, 0 } ! }; ! ! struct ims_crmodevals imsmode_?? = /* 1280 x 1024 @ 60 Hz */ ! { ! 1280, ! { ! { 0, 0, 0, 0, 0, 0, 0, 0 }, ! { 0x07, 0x0016, 0x0066, 0x006a, 0x0003, 0x0029, 0x0429, 0x042a }, ! }, ! { 0xf8, 0x30, 0xf1 }, ! { ! { 0x38, 0xf3 }, ! { 0x38, 0xf3 }, ! { 0x38, 0xf2 } ! }, ! { 0, 0, 0, 0 } ! }; ! #endif /* 0 */ ! ! struct ims_crmodevals imsmode_20 = /* 1280 x 1024 @ 75 Hz */ { 1280, { *************** *** 356,361 **** --- 624,695 ---- { 0, 0, 0, 0 } }; + #if 0 + struct ims_crmodevals imsmode_?? = /* 1280 x 1024 @ 85 Hz */ + { + 1280, + { + { 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0a, 0x0017, 0x0067, 0x006c, 0x0003, 0x002f, 0x042f, 0x0430 }, + }, + { 0xf9, 0x36, 0xf0 }, + { + { 0x38, 0xf3 }, + { 0x38, 0xf2 }, + { 0x38, 0xf1 } + }, + { 0, 0, 0, 0 } + }; + + struct ims_crmodevals imsmode_?? = /* 1600 x 1200 @ 60 Hz */ + { + 1600, + { + { 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0c, 0x001e, 0x0082, 0x0087, 0x0003, 0x0031, 0x04e1, 0x04e2 }, + }, + { 0xf5, 0x30, 0xf0 }, + { + { 0x38, 0xf3 }, + { 0x38, 0xf2 }, + { 0x38, 0xf1 } + }, + { 0, 0, 0, 0 } + }; + + struct ims_crmodevals imsmode_?? = /* 1600 x 1200 @ 65 Hz */ + { + 1600, + { + { 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0c, 0x001e, 0x0082, 0x0087, 0x0003, 0x0031, 0x04e1, 0x04e2 }, + }, + { 0xf2, 0x2a, 0xf0 }, + { + { 0x38, 0xf3 }, + { 0x38, 0xf2 }, + { 0x38, 0xf1 } + }, + { 0, 0, 0, 0 } + }; + + struct ims_crmodevals imsmode_?? = /* 1600 x 1200 @ 75 Hz */ + { + 1600, + { + { 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0c, 0x001e, 0x0082, 0x0087, 0x0003, 0x0031, 0x04e1, 0x04e2 }, + }, + { 0xf4, 0x2a, 0xf0 }, + { + { 0x38, 0xf3 }, + { 0x38, 0xf2 }, + { 0x38, 0xf1 } + }, + { 0, 0, 0, 0 } + }; + #endif /* 0 */ + // IBM RAMDAC initial register values static struct initvalues ibm_initregs[] = *************** *** 439,459 **** { ibm_initregs, tvp_initregs}, { NULL, NULL, NULL, ! NULL, ! &imsmode_6, &imsmode_6, NULL, NULL, ! NULL, ! NULL, ! NULL, ! NULL, &imsmode_13, ! NULL, ! NULL, ! NULL, &imsmode_17, &imsmode_18, &imsmode_19, --- 773,793 ---- { ibm_initregs, tvp_initregs}, { NULL, + &imsmode_2, NULL, NULL, ! &imsmode_5, &imsmode_6, + &imsmode_7, NULL, NULL, ! &imsmode_10, ! &imsmode_11, ! &imsmode_12, &imsmode_13, ! &imsmode_14, ! &imsmode_15, ! &imsmode_16, &imsmode_17, &imsmode_18, &imsmode_19,