Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

viafb: PLL value cleanup

viafb: PLL value cleanup

This is a big change of how PLL values are handled on the road to
dynamic PLL value generation. The table was converted automatically in
the relevant parameters for frequency generation. Sadly there were some
bits set whose meaning is unknown. Those differences are documented
but ignored as the unichrome code implies that they are not important
(a big thanks to Luc for his amazing work).
The PLL values for 31490000 and 133308000 are deleted as they were more
than 5% off and not used anyway. The values for CX700@60466000 and
VX855@153920000 are corrected as they were wrong and easily correctable
as enough correct values was available because CX700 and VX855 support
the same values only with a little difference in hardware format.
All remaining values are not more than 2% off.
Additionally the surrounding code is changed as needed especially the
byte order of the values written to hardware to allow nicer conversion
functions.
This is mostly a change preparing for dynamic PLL generation and the two
corrected values aside no runtime change is expected.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Joseph Chan <JosephChan@via.com.tw>

+410 -487
+400 -174
drivers/video/via/hw.c
··· 23 23 #include "global.h" 24 24 25 25 static struct pll_map pll_value[] = { 26 - {CLK_25_175M, CLE266_PLL_25_175M, K800_PLL_25_175M, 27 - CX700_25_175M, VX855_25_175M}, 28 - {CLK_29_581M, CLE266_PLL_29_581M, K800_PLL_29_581M, 29 - CX700_29_581M, VX855_29_581M}, 30 - {CLK_26_880M, CLE266_PLL_26_880M, K800_PLL_26_880M, 31 - CX700_26_880M, VX855_26_880M}, 32 - {CLK_31_490M, CLE266_PLL_31_490M, K800_PLL_31_490M, 33 - CX700_31_490M, VX855_31_490M}, 34 - {CLK_31_500M, CLE266_PLL_31_500M, K800_PLL_31_500M, 35 - CX700_31_500M, VX855_31_500M}, 36 - {CLK_31_728M, CLE266_PLL_31_728M, K800_PLL_31_728M, 37 - CX700_31_728M, VX855_31_728M}, 38 - {CLK_32_668M, CLE266_PLL_32_668M, K800_PLL_32_668M, 39 - CX700_32_668M, VX855_32_668M}, 40 - {CLK_36_000M, CLE266_PLL_36_000M, K800_PLL_36_000M, 41 - CX700_36_000M, VX855_36_000M}, 42 - {CLK_40_000M, CLE266_PLL_40_000M, K800_PLL_40_000M, 43 - CX700_40_000M, VX855_40_000M}, 44 - {CLK_41_291M, CLE266_PLL_41_291M, K800_PLL_41_291M, 45 - CX700_41_291M, VX855_41_291M}, 46 - {CLK_43_163M, CLE266_PLL_43_163M, K800_PLL_43_163M, 47 - CX700_43_163M, VX855_43_163M}, 48 - {CLK_45_250M, CLE266_PLL_45_250M, K800_PLL_45_250M, 49 - CX700_45_250M, VX855_45_250M}, 50 - {CLK_46_000M, CLE266_PLL_46_000M, K800_PLL_46_000M, 51 - CX700_46_000M, VX855_46_000M}, 52 - {CLK_46_996M, CLE266_PLL_46_996M, K800_PLL_46_996M, 53 - CX700_46_996M, VX855_46_996M}, 54 - {CLK_48_000M, CLE266_PLL_48_000M, K800_PLL_48_000M, 55 - CX700_48_000M, VX855_48_000M}, 56 - {CLK_48_875M, CLE266_PLL_48_875M, K800_PLL_48_875M, 57 - CX700_48_875M, VX855_48_875M}, 58 - {CLK_49_500M, CLE266_PLL_49_500M, K800_PLL_49_500M, 59 - CX700_49_500M, VX855_49_500M}, 60 - {CLK_52_406M, CLE266_PLL_52_406M, K800_PLL_52_406M, 61 - CX700_52_406M, VX855_52_406M}, 62 - {CLK_52_977M, CLE266_PLL_52_977M, K800_PLL_52_977M, 63 - CX700_52_977M, VX855_52_977M}, 64 - {CLK_56_250M, CLE266_PLL_56_250M, K800_PLL_56_250M, 65 - CX700_56_250M, VX855_56_250M}, 66 - {CLK_57_275M, 0, 0, 0, VX855_57_275M}, 67 - {CLK_60_466M, CLE266_PLL_60_466M, K800_PLL_60_466M, 68 - CX700_60_466M, VX855_60_466M}, 69 - {CLK_61_500M, CLE266_PLL_61_500M, K800_PLL_61_500M, 70 - CX700_61_500M, VX855_61_500M}, 71 - {CLK_65_000M, CLE266_PLL_65_000M, K800_PLL_65_000M, 72 - CX700_65_000M, VX855_65_000M}, 73 - {CLK_65_178M, CLE266_PLL_65_178M, K800_PLL_65_178M, 74 - CX700_65_178M, VX855_65_178M}, 75 - {CLK_66_750M, CLE266_PLL_66_750M, K800_PLL_66_750M, 76 - CX700_66_750M, VX855_66_750M}, 77 - {CLK_68_179M, CLE266_PLL_68_179M, K800_PLL_68_179M, 78 - CX700_68_179M, VX855_68_179M}, 79 - {CLK_69_924M, CLE266_PLL_69_924M, K800_PLL_69_924M, 80 - CX700_69_924M, VX855_69_924M}, 81 - {CLK_70_159M, CLE266_PLL_70_159M, K800_PLL_70_159M, 82 - CX700_70_159M, VX855_70_159M}, 83 - {CLK_72_000M, CLE266_PLL_72_000M, K800_PLL_72_000M, 84 - CX700_72_000M, VX855_72_000M}, 85 - {CLK_78_750M, CLE266_PLL_78_750M, K800_PLL_78_750M, 86 - CX700_78_750M, VX855_78_750M}, 87 - {CLK_80_136M, CLE266_PLL_80_136M, K800_PLL_80_136M, 88 - CX700_80_136M, VX855_80_136M}, 89 - {CLK_83_375M, CLE266_PLL_83_375M, K800_PLL_83_375M, 90 - CX700_83_375M, VX855_83_375M}, 91 - {CLK_83_950M, CLE266_PLL_83_950M, K800_PLL_83_950M, 92 - CX700_83_950M, VX855_83_950M}, 93 - {CLK_84_750M, CLE266_PLL_84_750M, K800_PLL_84_750M, 94 - CX700_84_750M, VX855_84_750M}, 95 - {CLK_85_860M, CLE266_PLL_85_860M, K800_PLL_85_860M, 96 - CX700_85_860M, VX855_85_860M}, 97 - {CLK_88_750M, CLE266_PLL_88_750M, K800_PLL_88_750M, 98 - CX700_88_750M, VX855_88_750M}, 99 - {CLK_94_500M, CLE266_PLL_94_500M, K800_PLL_94_500M, 100 - CX700_94_500M, VX855_94_500M}, 101 - {CLK_97_750M, CLE266_PLL_97_750M, K800_PLL_97_750M, 102 - CX700_97_750M, VX855_97_750M}, 103 - {CLK_101_000M, CLE266_PLL_101_000M, K800_PLL_101_000M, 104 - CX700_101_000M, VX855_101_000M}, 105 - {CLK_106_500M, CLE266_PLL_106_500M, K800_PLL_106_500M, 106 - CX700_106_500M, VX855_106_500M}, 107 - {CLK_108_000M, CLE266_PLL_108_000M, K800_PLL_108_000M, 108 - CX700_108_000M, VX855_108_000M}, 109 - {CLK_113_309M, CLE266_PLL_113_309M, K800_PLL_113_309M, 110 - CX700_113_309M, VX855_113_309M}, 111 - {CLK_118_840M, CLE266_PLL_118_840M, K800_PLL_118_840M, 112 - CX700_118_840M, VX855_118_840M}, 113 - {CLK_119_000M, CLE266_PLL_119_000M, K800_PLL_119_000M, 114 - CX700_119_000M, VX855_119_000M}, 115 - {CLK_121_750M, CLE266_PLL_121_750M, K800_PLL_121_750M, 116 - CX700_121_750M, 0}, 117 - {CLK_125_104M, CLE266_PLL_125_104M, K800_PLL_125_104M, 118 - CX700_125_104M, 0}, 119 - {CLK_133_308M, CLE266_PLL_133_308M, K800_PLL_133_308M, 120 - CX700_133_308M, 0}, 121 - {CLK_135_000M, CLE266_PLL_135_000M, K800_PLL_135_000M, 122 - CX700_135_000M, VX855_135_000M}, 123 - {CLK_136_700M, CLE266_PLL_136_700M, K800_PLL_136_700M, 124 - CX700_136_700M, VX855_136_700M}, 125 - {CLK_138_400M, CLE266_PLL_138_400M, K800_PLL_138_400M, 126 - CX700_138_400M, VX855_138_400M}, 127 - {CLK_146_760M, CLE266_PLL_146_760M, K800_PLL_146_760M, 128 - CX700_146_760M, VX855_146_760M}, 129 - {CLK_153_920M, CLE266_PLL_153_920M, K800_PLL_153_920M, 130 - CX700_153_920M, VX855_153_920M}, 131 - {CLK_156_000M, CLE266_PLL_156_000M, K800_PLL_156_000M, 132 - CX700_156_000M, VX855_156_000M}, 133 - {CLK_157_500M, CLE266_PLL_157_500M, K800_PLL_157_500M, 134 - CX700_157_500M, VX855_157_500M}, 135 - {CLK_162_000M, CLE266_PLL_162_000M, K800_PLL_162_000M, 136 - CX700_162_000M, VX855_162_000M}, 137 - {CLK_187_000M, CLE266_PLL_187_000M, K800_PLL_187_000M, 138 - CX700_187_000M, VX855_187_000M}, 139 - {CLK_193_295M, CLE266_PLL_193_295M, K800_PLL_193_295M, 140 - CX700_193_295M, VX855_193_295M}, 141 - {CLK_202_500M, CLE266_PLL_202_500M, K800_PLL_202_500M, 142 - CX700_202_500M, VX855_202_500M}, 143 - {CLK_204_000M, CLE266_PLL_204_000M, K800_PLL_204_000M, 144 - CX700_204_000M, VX855_204_000M}, 145 - {CLK_218_500M, CLE266_PLL_218_500M, K800_PLL_218_500M, 146 - CX700_218_500M, VX855_218_500M}, 147 - {CLK_234_000M, CLE266_PLL_234_000M, K800_PLL_234_000M, 148 - CX700_234_000M, VX855_234_000M}, 149 - {CLK_267_250M, CLE266_PLL_267_250M, K800_PLL_267_250M, 150 - CX700_267_250M, VX855_267_250M}, 151 - {CLK_297_500M, CLE266_PLL_297_500M, K800_PLL_297_500M, 152 - CX700_297_500M, VX855_297_500M}, 153 - {CLK_74_481M, CLE266_PLL_74_481M, K800_PLL_74_481M, 154 - CX700_74_481M, VX855_74_481M}, 155 - {CLK_172_798M, CLE266_PLL_172_798M, K800_PLL_172_798M, 156 - CX700_172_798M, VX855_172_798M}, 157 - {CLK_122_614M, CLE266_PLL_122_614M, K800_PLL_122_614M, 158 - CX700_122_614M, VX855_122_614M}, 159 - {CLK_74_270M, CLE266_PLL_74_270M, K800_PLL_74_270M, 160 - CX700_74_270M, 0}, 161 - {CLK_148_500M, CLE266_PLL_148_500M, K800_PLL_148_500M, 162 - CX700_148_500M, VX855_148_500M} 26 + {25175000, 27 + {99, 7, 3}, 28 + {85, 3, 4}, /* ignoring bit difference: 0x00008000 */ 29 + {141, 5, 4}, 30 + {141, 5, 4} }, 31 + {29581000, 32 + {33, 4, 2}, 33 + {66, 2, 4}, /* ignoring bit difference: 0x00808000 */ 34 + {166, 5, 4}, /* ignoring bit difference: 0x00008000 */ 35 + {165, 5, 4} }, 36 + {26880000, 37 + {15, 4, 1}, 38 + {30, 2, 3}, /* ignoring bit difference: 0x00808000 */ 39 + {150, 5, 4}, 40 + {150, 5, 4} }, 41 + {31500000, 42 + {53, 3, 3}, /* ignoring bit difference: 0x00008000 */ 43 + {141, 4, 4}, /* ignoring bit difference: 0x00008000 */ 44 + {176, 5, 4}, 45 + {176, 5, 4} }, 46 + {31728000, 47 + {31, 7, 1}, 48 + {177, 5, 4}, /* ignoring bit difference: 0x00008000 */ 49 + {177, 5, 4}, 50 + {142, 4, 4} }, 51 + {32688000, 52 + {73, 4, 3}, 53 + {146, 4, 4}, /* ignoring bit difference: 0x00008000 */ 54 + {183, 5, 4}, 55 + {146, 4, 4} }, 56 + {36000000, 57 + {101, 5, 3}, /* ignoring bit difference: 0x00008000 */ 58 + {161, 4, 4}, /* ignoring bit difference: 0x00008000 */ 59 + {202, 5, 4}, 60 + {161, 4, 4} }, 61 + {40000000, 62 + {89, 4, 3}, 63 + {89, 4, 3}, /* ignoring bit difference: 0x00008000 */ 64 + {112, 5, 3}, 65 + {112, 5, 3} }, 66 + {41291000, 67 + {23, 4, 1}, 68 + {69, 3, 3}, /* ignoring bit difference: 0x00008000 */ 69 + {115, 5, 3}, 70 + {115, 5, 3} }, 71 + {43163000, 72 + {121, 5, 3}, 73 + {121, 5, 3}, /* ignoring bit difference: 0x00008000 */ 74 + {121, 5, 3}, 75 + {121, 5, 3} }, 76 + {45250000, 77 + {127, 5, 3}, 78 + {127, 5, 3}, /* ignoring bit difference: 0x00808000 */ 79 + {127, 5, 3}, 80 + {127, 5, 3} }, 81 + {46000000, 82 + {90, 7, 2}, 83 + {103, 4, 3}, /* ignoring bit difference: 0x00008000 */ 84 + {129, 5, 3}, 85 + {103, 4, 3} }, 86 + {46996000, 87 + {105, 4, 3}, /* ignoring bit difference: 0x00008000 */ 88 + {131, 5, 3}, /* ignoring bit difference: 0x00808000 */ 89 + {131, 5, 3}, /* ignoring bit difference: 0x00808000 */ 90 + {105, 4, 3} }, 91 + {48000000, 92 + {67, 20, 0}, 93 + {134, 5, 3}, /* ignoring bit difference: 0x00808000 */ 94 + {134, 5, 3}, 95 + {134, 5, 3} }, 96 + {48875000, 97 + {99, 29, 0}, 98 + {82, 3, 3}, /* ignoring bit difference: 0x00808000 */ 99 + {82, 3, 3}, /* ignoring bit difference: 0x00808000 */ 100 + {137, 5, 3} }, 101 + {49500000, 102 + {83, 6, 2}, 103 + {83, 3, 3}, /* ignoring bit difference: 0x00008000 */ 104 + {138, 5, 3}, 105 + {83, 3, 3} }, 106 + {52406000, 107 + {117, 4, 3}, 108 + {117, 4, 3}, /* ignoring bit difference: 0x00008000 */ 109 + {117, 4, 3}, 110 + {88, 3, 3} }, 111 + {52977000, 112 + {37, 5, 1}, 113 + {148, 5, 3}, /* ignoring bit difference: 0x00808000 */ 114 + {148, 5, 3}, 115 + {148, 5, 3} }, 116 + {56250000, 117 + {55, 7, 1}, /* ignoring bit difference: 0x00008000 */ 118 + {126, 4, 3}, /* ignoring bit difference: 0x00008000 */ 119 + {157, 5, 3}, 120 + {157, 5, 3} }, 121 + {57275000, 122 + {0, 0, 0}, 123 + {2, 2, 0}, 124 + {2, 2, 0}, 125 + {157, 5, 3} }, /* ignoring bit difference: 0x00808000 */ 126 + {60466000, 127 + {76, 9, 1}, 128 + {169, 5, 3}, /* ignoring bit difference: 0x00808000 */ 129 + {169, 5, 3}, /* FIXED: old = {72, 2, 3} */ 130 + {169, 5, 3} }, 131 + {61500000, 132 + {86, 20, 0}, 133 + {172, 5, 3}, /* ignoring bit difference: 0x00808000 */ 134 + {172, 5, 3}, 135 + {172, 5, 3} }, 136 + {65000000, 137 + {109, 6, 2}, /* ignoring bit difference: 0x00008000 */ 138 + {109, 3, 3}, /* ignoring bit difference: 0x00008000 */ 139 + {109, 3, 3}, 140 + {109, 3, 3} }, 141 + {65178000, 142 + {91, 5, 2}, 143 + {182, 5, 3}, /* ignoring bit difference: 0x00808000 */ 144 + {109, 3, 3}, 145 + {182, 5, 3} }, 146 + {66750000, 147 + {75, 4, 2}, 148 + {150, 4, 3}, /* ignoring bit difference: 0x00808000 */ 149 + {150, 4, 3}, 150 + {112, 3, 3} }, 151 + {68179000, 152 + {19, 4, 0}, 153 + {114, 3, 3}, /* ignoring bit difference: 0x00008000 */ 154 + {190, 5, 3}, 155 + {191, 5, 3} }, 156 + {69924000, 157 + {83, 17, 0}, 158 + {195, 5, 3}, /* ignoring bit difference: 0x00808000 */ 159 + {195, 5, 3}, 160 + {195, 5, 3} }, 161 + {70159000, 162 + {98, 20, 0}, 163 + {196, 5, 3}, /* ignoring bit difference: 0x00808000 */ 164 + {196, 5, 3}, 165 + {195, 5, 3} }, 166 + {72000000, 167 + {121, 24, 0}, 168 + {161, 4, 3}, /* ignoring bit difference: 0x00808000 */ 169 + {161, 4, 3}, 170 + {161, 4, 3} }, 171 + {78750000, 172 + {33, 3, 1}, 173 + {66, 3, 2}, /* ignoring bit difference: 0x00008000 */ 174 + {110, 5, 2}, 175 + {110, 5, 2} }, 176 + {80136000, 177 + {28, 5, 0}, 178 + {68, 3, 2}, /* ignoring bit difference: 0x00008000 */ 179 + {112, 5, 2}, 180 + {112, 5, 2} }, 181 + {83375000, 182 + {93, 2, 3}, 183 + {93, 4, 2}, /* ignoring bit difference: 0x00800000 */ 184 + {93, 4, 2}, /* ignoring bit difference: 0x00800000 */ 185 + {117, 5, 2} }, 186 + {83950000, 187 + {41, 7, 0}, 188 + {117, 5, 2}, /* ignoring bit difference: 0x00008000 */ 189 + {117, 5, 2}, 190 + {117, 5, 2} }, 191 + {84750000, 192 + {118, 5, 2}, 193 + {118, 5, 2}, /* ignoring bit difference: 0x00808000 */ 194 + {118, 5, 2}, 195 + {118, 5, 2} }, 196 + {85860000, 197 + {84, 7, 1}, 198 + {120, 5, 2}, /* ignoring bit difference: 0x00808000 */ 199 + {120, 5, 2}, 200 + {118, 5, 2} }, 201 + {88750000, 202 + {31, 5, 0}, 203 + {124, 5, 2}, /* ignoring bit difference: 0x00808000 */ 204 + {174, 7, 2}, /* ignoring bit difference: 0x00808000 */ 205 + {124, 5, 2} }, 206 + {94500000, 207 + {33, 5, 0}, 208 + {132, 5, 2}, /* ignoring bit difference: 0x00008000 */ 209 + {132, 5, 2}, 210 + {132, 5, 2} }, 211 + {97750000, 212 + {82, 6, 1}, 213 + {137, 5, 2}, /* ignoring bit difference: 0x00808000 */ 214 + {137, 5, 2}, 215 + {137, 5, 2} }, 216 + {101000000, 217 + {127, 9, 1}, 218 + {141, 5, 2}, /* ignoring bit difference: 0x00808000 */ 219 + {141, 5, 2}, 220 + {141, 5, 2} }, 221 + {106500000, 222 + {119, 4, 2}, 223 + {119, 4, 2}, /* ignoring bit difference: 0x00808000 */ 224 + {119, 4, 2}, 225 + {149, 5, 2} }, 226 + {108000000, 227 + {121, 4, 2}, 228 + {121, 4, 2}, /* ignoring bit difference: 0x00808000 */ 229 + {151, 5, 2}, 230 + {151, 5, 2} }, 231 + {113309000, 232 + {95, 12, 0}, 233 + {95, 3, 2}, /* ignoring bit difference: 0x00808000 */ 234 + {95, 3, 2}, 235 + {159, 5, 2} }, 236 + {118840000, 237 + {83, 5, 1}, 238 + {166, 5, 2}, /* ignoring bit difference: 0x00808000 */ 239 + {166, 5, 2}, 240 + {166, 5, 2} }, 241 + {119000000, 242 + {108, 13, 0}, 243 + {133, 4, 2}, /* ignoring bit difference: 0x00808000 */ 244 + {133, 4, 2}, 245 + {167, 5, 2} }, 246 + {121750000, 247 + {85, 5, 1}, 248 + {170, 5, 2}, /* ignoring bit difference: 0x00808000 */ 249 + {68, 2, 2}, 250 + {0, 0, 0} }, 251 + {125104000, 252 + {53, 6, 0}, /* ignoring bit difference: 0x00008000 */ 253 + {106, 3, 2}, /* ignoring bit difference: 0x00008000 */ 254 + {175, 5, 2}, 255 + {0, 0, 0} }, 256 + {135000000, 257 + {94, 5, 1}, 258 + {28, 3, 0}, /* ignoring bit difference: 0x00804000 */ 259 + {151, 4, 2}, 260 + {189, 5, 2} }, 261 + {136700000, 262 + {115, 12, 0}, 263 + {191, 5, 2}, /* ignoring bit difference: 0x00808000 */ 264 + {191, 5, 2}, 265 + {191, 5, 2} }, 266 + {138400000, 267 + {87, 9, 0}, 268 + {116, 3, 2}, /* ignoring bit difference: 0x00808000 */ 269 + {116, 3, 2}, 270 + {194, 5, 2} }, 271 + {146760000, 272 + {103, 5, 1}, 273 + {206, 5, 2}, /* ignoring bit difference: 0x00808000 */ 274 + {206, 5, 2}, 275 + {206, 5, 2} }, 276 + {153920000, 277 + {86, 8, 0}, 278 + {86, 4, 1}, /* ignoring bit difference: 0x00808000 */ 279 + {86, 4, 1}, 280 + {86, 4, 1} }, /* FIXED: old = {84, 2, 1} */ 281 + {156000000, 282 + {109, 5, 1}, 283 + {109, 5, 1}, /* ignoring bit difference: 0x00808000 */ 284 + {109, 5, 1}, 285 + {108, 5, 1} }, 286 + {157500000, 287 + {55, 5, 0}, /* ignoring bit difference: 0x00008000 */ 288 + {22, 2, 0}, /* ignoring bit difference: 0x00802000 */ 289 + {110, 5, 1}, 290 + {110, 5, 1} }, 291 + {162000000, 292 + {113, 5, 1}, 293 + {113, 5, 1}, /* ignoring bit difference: 0x00808000 */ 294 + {113, 5, 1}, 295 + {113, 5, 1} }, 296 + {187000000, 297 + {118, 9, 0}, 298 + {131, 5, 1}, /* ignoring bit difference: 0x00808000 */ 299 + {131, 5, 1}, 300 + {131, 5, 1} }, 301 + {193295000, 302 + {108, 8, 0}, 303 + {81, 3, 1}, /* ignoring bit difference: 0x00808000 */ 304 + {135, 5, 1}, 305 + {135, 5, 1} }, 306 + {202500000, 307 + {99, 7, 0}, 308 + {85, 3, 1}, /* ignoring bit difference: 0x00808000 */ 309 + {142, 5, 1}, 310 + {142, 5, 1} }, 311 + {204000000, 312 + {100, 7, 0}, 313 + {143, 5, 1}, /* ignoring bit difference: 0x00808000 */ 314 + {143, 5, 1}, 315 + {143, 5, 1} }, 316 + {218500000, 317 + {92, 6, 0}, 318 + {153, 5, 1}, /* ignoring bit difference: 0x00808000 */ 319 + {153, 5, 1}, 320 + {153, 5, 1} }, 321 + {234000000, 322 + {98, 6, 0}, 323 + {98, 3, 1}, /* ignoring bit difference: 0x00008000 */ 324 + {98, 3, 1}, 325 + {164, 5, 1} }, 326 + {267250000, 327 + {112, 6, 0}, 328 + {112, 3, 1}, /* ignoring bit difference: 0x00808000 */ 329 + {187, 5, 1}, 330 + {187, 5, 1} }, 331 + {297500000, 332 + {102, 5, 0}, /* ignoring bit difference: 0x00008000 */ 333 + {166, 4, 1}, /* ignoring bit difference: 0x00008000 */ 334 + {208, 5, 1}, 335 + {208, 5, 1} }, 336 + {74481000, 337 + {26, 5, 0}, 338 + {125, 3, 3}, /* ignoring bit difference: 0x00808000 */ 339 + {208, 5, 3}, 340 + {209, 5, 3} }, 341 + {172798000, 342 + {121, 5, 1}, 343 + {121, 5, 1}, /* ignoring bit difference: 0x00808000 */ 344 + {121, 5, 1}, 345 + {121, 5, 1} }, 346 + {122614000, 347 + {60, 7, 0}, 348 + {137, 4, 2}, /* ignoring bit difference: 0x00808000 */ 349 + {137, 4, 2}, 350 + {172, 5, 2} }, 351 + {74270000, 352 + {83, 8, 1}, 353 + {208, 5, 3}, 354 + {208, 5, 3}, 355 + {0, 0, 0} }, 356 + {148500000, 357 + {83, 8, 0}, 358 + {208, 5, 2}, 359 + {166, 4, 2}, 360 + {208, 5, 2} } 163 361 }; 164 362 165 363 static struct fifo_depth_select display_fifo_depth_reg = { ··· 1558 1360 1559 1361 } 1560 1362 1363 + static u32 cle266_encode_pll(struct pll_config pll) 1364 + { 1365 + return (pll.multiplier << 8) 1366 + | (pll.rshift << 6) 1367 + | pll.divisor; 1368 + } 1369 + 1370 + static u32 k800_encode_pll(struct pll_config pll) 1371 + { 1372 + return ((pll.divisor - 2) << 16) 1373 + | (pll.rshift << 10) 1374 + | (pll.multiplier - 2); 1375 + } 1376 + 1377 + static u32 vx855_encode_pll(struct pll_config pll) 1378 + { 1379 + return (pll.divisor << 16) 1380 + | (pll.rshift << 10) 1381 + | pll.multiplier; 1382 + } 1383 + 1561 1384 u32 viafb_get_clk_value(int clk) 1562 1385 { 1563 - int i; 1386 + u32 value = 0; 1387 + int i = 0; 1564 1388 1565 - for (i = 0; i < NUM_TOTAL_PLL_TABLE; i++) { 1566 - if (clk == pll_value[i].clk) { 1567 - switch (viaparinfo->chip_info->gfx_chip_name) { 1568 - case UNICHROME_CLE266: 1569 - case UNICHROME_K400: 1570 - return pll_value[i].cle266_pll; 1389 + while (i < NUM_TOTAL_PLL_TABLE && clk != pll_value[i].clk) 1390 + i++; 1571 1391 1572 - case UNICHROME_K800: 1573 - case UNICHROME_PM800: 1574 - case UNICHROME_CN700: 1575 - return pll_value[i].k800_pll; 1392 + if (i == NUM_TOTAL_PLL_TABLE) { 1393 + printk(KERN_WARNING "viafb_get_clk_value: PLL lookup failed!"); 1394 + } else { 1395 + switch (viaparinfo->chip_info->gfx_chip_name) { 1396 + case UNICHROME_CLE266: 1397 + case UNICHROME_K400: 1398 + value = cle266_encode_pll(pll_value[i].cle266_pll); 1399 + break; 1576 1400 1577 - case UNICHROME_CX700: 1578 - case UNICHROME_K8M890: 1579 - case UNICHROME_P4M890: 1580 - case UNICHROME_P4M900: 1581 - case UNICHROME_VX800: 1582 - return pll_value[i].cx700_pll; 1583 - case UNICHROME_VX855: 1584 - return pll_value[i].vx855_pll; 1585 - } 1401 + case UNICHROME_K800: 1402 + case UNICHROME_PM800: 1403 + case UNICHROME_CN700: 1404 + value = k800_encode_pll(pll_value[i].k800_pll); 1405 + break; 1406 + 1407 + case UNICHROME_CX700: 1408 + case UNICHROME_CN750: 1409 + case UNICHROME_K8M890: 1410 + case UNICHROME_P4M890: 1411 + case UNICHROME_P4M900: 1412 + case UNICHROME_VX800: 1413 + value = k800_encode_pll(pll_value[i].cx700_pll); 1414 + break; 1415 + 1416 + case UNICHROME_VX855: 1417 + value = vx855_encode_pll(pll_value[i].vx855_pll); 1418 + break; 1586 1419 } 1587 1420 } 1588 1421 1589 - DEBUG_MSG(KERN_INFO "Can't find match PLL value\n\n"); 1590 - return 0; 1422 + return value; 1591 1423 } 1592 1424 1593 1425 /* Set VCLK*/ 1594 - void viafb_set_vclock(u32 CLK, int set_iga) 1426 + void viafb_set_vclock(u32 clk, int set_iga) 1595 1427 { 1596 1428 /* H.W. Reset : ON */ 1597 1429 viafb_write_reg_mask(CR17, VIACR, 0x00, BIT7); ··· 1631 1403 switch (viaparinfo->chip_info->gfx_chip_name) { 1632 1404 case UNICHROME_CLE266: 1633 1405 case UNICHROME_K400: 1634 - viafb_write_reg(SR46, VIASR, CLK / 0x100); 1635 - viafb_write_reg(SR47, VIASR, CLK % 0x100); 1406 + via_write_reg(VIASR, SR46, (clk & 0x00FF)); 1407 + via_write_reg(VIASR, SR47, (clk & 0xFF00) >> 8); 1636 1408 break; 1637 1409 1638 1410 case UNICHROME_K800: 1639 1411 case UNICHROME_PM800: 1640 1412 case UNICHROME_CN700: 1641 1413 case UNICHROME_CX700: 1414 + case UNICHROME_CN750: 1642 1415 case UNICHROME_K8M890: 1643 1416 case UNICHROME_P4M890: 1644 1417 case UNICHROME_P4M900: 1645 1418 case UNICHROME_VX800: 1646 1419 case UNICHROME_VX855: 1647 - viafb_write_reg(SR44, VIASR, CLK / 0x10000); 1648 - DEBUG_MSG(KERN_INFO "\nSR44=%x", CLK / 0x10000); 1649 - viafb_write_reg(SR45, VIASR, (CLK & 0xFFFF) / 0x100); 1650 - DEBUG_MSG(KERN_INFO "\nSR45=%x", 1651 - (CLK & 0xFFFF) / 0x100); 1652 - viafb_write_reg(SR46, VIASR, CLK % 0x100); 1653 - DEBUG_MSG(KERN_INFO "\nSR46=%x", CLK % 0x100); 1420 + via_write_reg(VIASR, SR44, (clk & 0x0000FF)); 1421 + via_write_reg(VIASR, SR45, (clk & 0x00FF00) >> 8); 1422 + via_write_reg(VIASR, SR46, (clk & 0xFF0000) >> 16); 1654 1423 break; 1655 1424 } 1656 1425 } ··· 1657 1432 switch (viaparinfo->chip_info->gfx_chip_name) { 1658 1433 case UNICHROME_CLE266: 1659 1434 case UNICHROME_K400: 1660 - viafb_write_reg(SR44, VIASR, CLK / 0x100); 1661 - viafb_write_reg(SR45, VIASR, CLK % 0x100); 1435 + via_write_reg(VIASR, SR44, (clk & 0x00FF)); 1436 + via_write_reg(VIASR, SR45, (clk & 0xFF00) >> 8); 1662 1437 break; 1663 1438 1664 1439 case UNICHROME_K800: 1665 1440 case UNICHROME_PM800: 1666 1441 case UNICHROME_CN700: 1667 1442 case UNICHROME_CX700: 1443 + case UNICHROME_CN750: 1668 1444 case UNICHROME_K8M890: 1669 1445 case UNICHROME_P4M890: 1670 1446 case UNICHROME_P4M900: 1671 1447 case UNICHROME_VX800: 1672 1448 case UNICHROME_VX855: 1673 - viafb_write_reg(SR4A, VIASR, CLK / 0x10000); 1674 - viafb_write_reg(SR4B, VIASR, (CLK & 0xFFFF) / 0x100); 1675 - viafb_write_reg(SR4C, VIASR, CLK % 0x100); 1449 + via_write_reg(VIASR, SR4A, (clk & 0x0000FF)); 1450 + via_write_reg(VIASR, SR4B, (clk & 0x00FF00) >> 8); 1451 + via_write_reg(VIASR, SR4C, (clk & 0xFF0000) >> 16); 1676 1452 break; 1677 1453 } 1678 1454 }
+10 -4
drivers/video/via/hw.h
··· 700 700 struct _lcd_ver_scaling_factor lcd_ver_scaling_factor; 701 701 }; 702 702 703 + struct pll_config { 704 + u16 multiplier; 705 + u8 divisor; 706 + u8 rshift; 707 + }; 708 + 703 709 struct pll_map { 704 710 u32 clk; 705 - u32 cle266_pll; 706 - u32 k800_pll; 707 - u32 cx700_pll; 708 - u32 vx855_pll; 711 + struct pll_config cle266_pll; 712 + struct pll_config k800_pll; 713 + struct pll_config cx700_pll; 714 + struct pll_config vx855_pll; 709 715 }; 710 716 711 717 struct rgbLUT {
-309
drivers/video/via/share.h
··· 631 631 #define CLK_25_175M 25175000 632 632 #define CLK_26_880M 26880000 633 633 #define CLK_29_581M 29581000 634 - #define CLK_31_490M 31490000 635 634 #define CLK_31_500M 31500000 636 635 #define CLK_31_728M 31728000 637 636 #define CLK_32_668M 32688000 ··· 675 676 #define CLK_119_000M 119000000 676 677 #define CLK_121_750M 121750000 /* 121.704MHz */ 677 678 #define CLK_125_104M 125104000 678 - #define CLK_133_308M 133308000 679 679 #define CLK_135_000M 135000000 680 680 #define CLK_136_700M 136700000 681 681 #define CLK_138_400M 138400000 ··· 696 698 #define CLK_74_481M 74481000 697 699 #define CLK_172_798M 172798000 698 700 #define CLK_122_614M 122614000 699 - 700 - /* CLE266 PLL value 701 - */ 702 - #define CLE266_PLL_25_175M 0x0000C763 703 - #define CLE266_PLL_26_880M 0x0000440F 704 - #define CLE266_PLL_29_581M 0x00008421 705 - #define CLE266_PLL_31_490M 0x00004721 706 - #define CLE266_PLL_31_500M 0x0000C3B5 707 - #define CLE266_PLL_31_728M 0x0000471F 708 - #define CLE266_PLL_32_668M 0x0000C449 709 - #define CLE266_PLL_36_000M 0x0000C5E5 710 - #define CLE266_PLL_40_000M 0x0000C459 711 - #define CLE266_PLL_41_291M 0x00004417 712 - #define CLE266_PLL_43_163M 0x0000C579 713 - #define CLE266_PLL_45_250M 0x0000C57F /* 45.46MHz */ 714 - #define CLE266_PLL_46_000M 0x0000875A 715 - #define CLE266_PLL_46_996M 0x0000C4E9 716 - #define CLE266_PLL_48_000M 0x00001443 717 - #define CLE266_PLL_48_875M 0x00001D63 718 - #define CLE266_PLL_49_500M 0x00008653 719 - #define CLE266_PLL_52_406M 0x0000C475 720 - #define CLE266_PLL_52_977M 0x00004525 721 - #define CLE266_PLL_56_250M 0x000047B7 722 - #define CLE266_PLL_60_466M 0x0000494C 723 - #define CLE266_PLL_61_500M 0x00001456 724 - #define CLE266_PLL_65_000M 0x000086ED 725 - #define CLE266_PLL_65_178M 0x0000855B 726 - #define CLE266_PLL_66_750M 0x0000844B /* 67.116MHz */ 727 - #define CLE266_PLL_68_179M 0x00000413 728 - #define CLE266_PLL_69_924M 0x00001153 729 - #define CLE266_PLL_70_159M 0x00001462 730 - #define CLE266_PLL_72_000M 0x00001879 731 - #define CLE266_PLL_74_270M 0x00004853 732 - #define CLE266_PLL_78_750M 0x00004321 733 - #define CLE266_PLL_80_136M 0x0000051C 734 - #define CLE266_PLL_83_375M 0x0000C25D 735 - #define CLE266_PLL_83_950M 0x00000729 736 - #define CLE266_PLL_84_750M 0x00008576 /* 84.537MHz */ 737 - #define CLE266_PLL_85_860M 0x00004754 738 - #define CLE266_PLL_88_750M 0x0000051F 739 - #define CLE266_PLL_94_500M 0x00000521 740 - #define CLE266_PLL_97_750M 0x00004652 741 - #define CLE266_PLL_101_000M 0x0000497F 742 - #define CLE266_PLL_106_500M 0x00008477 /* 106.491463 MHz */ 743 - #define CLE266_PLL_108_000M 0x00008479 744 - #define CLE266_PLL_113_309M 0x00000C5F 745 - #define CLE266_PLL_118_840M 0x00004553 746 - #define CLE266_PLL_119_000M 0x00000D6C 747 - #define CLE266_PLL_121_750M 0x00004555 /* 121.704MHz */ 748 - #define CLE266_PLL_125_104M 0x000006B5 749 - #define CLE266_PLL_133_308M 0x0000465F 750 - #define CLE266_PLL_135_000M 0x0000455E 751 - #define CLE266_PLL_136_700M 0x00000C73 752 - #define CLE266_PLL_138_400M 0x00000957 753 - #define CLE266_PLL_146_760M 0x00004567 754 - #define CLE266_PLL_148_500M 0x00000853 755 - #define CLE266_PLL_153_920M 0x00000856 756 - #define CLE266_PLL_156_000M 0x0000456D 757 - #define CLE266_PLL_157_500M 0x000005B7 758 - #define CLE266_PLL_162_000M 0x00004571 759 - #define CLE266_PLL_187_000M 0x00000976 760 - #define CLE266_PLL_193_295M 0x0000086C 761 - #define CLE266_PLL_202_500M 0x00000763 762 - #define CLE266_PLL_204_000M 0x00000764 763 - #define CLE266_PLL_218_500M 0x0000065C 764 - #define CLE266_PLL_234_000M 0x00000662 765 - #define CLE266_PLL_267_250M 0x00000670 766 - #define CLE266_PLL_297_500M 0x000005E6 767 - #define CLE266_PLL_74_481M 0x0000051A 768 - #define CLE266_PLL_172_798M 0x00004579 769 - #define CLE266_PLL_122_614M 0x0000073C 770 - 771 - /* K800 PLL value 772 - */ 773 - #define K800_PLL_25_175M 0x00539001 774 - #define K800_PLL_26_880M 0x001C8C80 775 - #define K800_PLL_29_581M 0x00409080 776 - #define K800_PLL_31_490M 0x006F9001 777 - #define K800_PLL_31_500M 0x008B9002 778 - #define K800_PLL_31_728M 0x00AF9003 779 - #define K800_PLL_32_668M 0x00909002 780 - #define K800_PLL_36_000M 0x009F9002 781 - #define K800_PLL_40_000M 0x00578C02 782 - #define K800_PLL_41_291M 0x00438C01 783 - #define K800_PLL_43_163M 0x00778C03 784 - #define K800_PLL_45_250M 0x007D8C83 /* 45.46MHz */ 785 - #define K800_PLL_46_000M 0x00658C02 786 - #define K800_PLL_46_996M 0x00818C83 787 - #define K800_PLL_48_000M 0x00848C83 788 - #define K800_PLL_48_875M 0x00508C81 789 - #define K800_PLL_49_500M 0x00518C01 790 - #define K800_PLL_52_406M 0x00738C02 791 - #define K800_PLL_52_977M 0x00928C83 792 - #define K800_PLL_56_250M 0x007C8C02 793 - #define K800_PLL_60_466M 0x00A78C83 794 - #define K800_PLL_61_500M 0x00AA8C83 795 - #define K800_PLL_65_000M 0x006B8C01 796 - #define K800_PLL_65_178M 0x00B48C83 797 - #define K800_PLL_66_750M 0x00948C82 /* 67.116MHz */ 798 - #define K800_PLL_68_179M 0x00708C01 799 - #define K800_PLL_69_924M 0x00C18C83 800 - #define K800_PLL_70_159M 0x00C28C83 801 - #define K800_PLL_72_000M 0x009F8C82 802 - #define K800_PLL_74_270M 0x00ce0c03 803 - #define K800_PLL_78_750M 0x00408801 804 - #define K800_PLL_80_136M 0x00428801 805 - #define K800_PLL_83_375M 0x005B0882 806 - #define K800_PLL_83_950M 0x00738803 807 - #define K800_PLL_84_750M 0x00748883 /* 84.477MHz */ 808 - #define K800_PLL_85_860M 0x00768883 809 - #define K800_PLL_88_750M 0x007A8883 810 - #define K800_PLL_94_500M 0x00828803 811 - #define K800_PLL_97_750M 0x00878883 812 - #define K800_PLL_101_000M 0x008B8883 813 - #define K800_PLL_106_500M 0x00758882 /* 106.491463 MHz */ 814 - #define K800_PLL_108_000M 0x00778882 815 - #define K800_PLL_113_309M 0x005D8881 816 - #define K800_PLL_118_840M 0x00A48883 817 - #define K800_PLL_119_000M 0x00838882 818 - #define K800_PLL_121_750M 0x00A88883 /* 121.704MHz */ 819 - #define K800_PLL_125_104M 0x00688801 820 - #define K800_PLL_133_308M 0x005D8801 821 - #define K800_PLL_135_000M 0x001A4081 822 - #define K800_PLL_136_700M 0x00BD8883 823 - #define K800_PLL_138_400M 0x00728881 824 - #define K800_PLL_146_760M 0x00CC8883 825 - #define K800_PLL_148_500M 0x00ce0803 826 - #define K800_PLL_153_920M 0x00548482 827 - #define K800_PLL_156_000M 0x006B8483 828 - #define K800_PLL_157_500M 0x00142080 829 - #define K800_PLL_162_000M 0x006F8483 830 - #define K800_PLL_187_000M 0x00818483 831 - #define K800_PLL_193_295M 0x004F8481 832 - #define K800_PLL_202_500M 0x00538481 833 - #define K800_PLL_204_000M 0x008D8483 834 - #define K800_PLL_218_500M 0x00978483 835 - #define K800_PLL_234_000M 0x00608401 836 - #define K800_PLL_267_250M 0x006E8481 837 - #define K800_PLL_297_500M 0x00A48402 838 - #define K800_PLL_74_481M 0x007B8C81 839 - #define K800_PLL_172_798M 0x00778483 840 - #define K800_PLL_122_614M 0x00878882 841 - 842 - /* PLL for VT3324 */ 843 - #define CX700_25_175M 0x008B1003 844 - #define CX700_26_719M 0x00931003 845 - #define CX700_26_880M 0x00941003 846 - #define CX700_29_581M 0x00A49003 847 - #define CX700_31_490M 0x00AE1003 848 - #define CX700_31_500M 0x00AE1003 849 - #define CX700_31_728M 0x00AF1003 850 - #define CX700_32_668M 0x00B51003 851 - #define CX700_36_000M 0x00C81003 852 - #define CX700_40_000M 0x006E0C03 853 - #define CX700_41_291M 0x00710C03 854 - #define CX700_43_163M 0x00770C03 855 - #define CX700_45_250M 0x007D0C03 /* 45.46MHz */ 856 - #define CX700_46_000M 0x007F0C03 857 - #define CX700_46_996M 0x00818C83 858 - #define CX700_48_000M 0x00840C03 859 - #define CX700_48_875M 0x00508C81 860 - #define CX700_49_500M 0x00880C03 861 - #define CX700_52_406M 0x00730C02 862 - #define CX700_52_977M 0x00920C03 863 - #define CX700_56_250M 0x009B0C03 864 - #define CX700_60_466M 0x00460C00 865 - #define CX700_61_500M 0x00AA0C03 866 - #define CX700_65_000M 0x006B0C01 867 - #define CX700_65_178M 0x006B0C01 868 - #define CX700_66_750M 0x00940C02 /*67.116MHz */ 869 - #define CX700_68_179M 0x00BC0C03 870 - #define CX700_69_924M 0x00C10C03 871 - #define CX700_70_159M 0x00C20C03 872 - #define CX700_72_000M 0x009F0C02 873 - #define CX700_74_270M 0x00CE0C03 874 - #define CX700_74_481M 0x00CE0C03 875 - #define CX700_78_750M 0x006C0803 876 - #define CX700_80_136M 0x006E0803 877 - #define CX700_83_375M 0x005B0882 878 - #define CX700_83_950M 0x00730803 879 - #define CX700_84_750M 0x00740803 /* 84.537Mhz */ 880 - #define CX700_85_860M 0x00760803 881 - #define CX700_88_750M 0x00AC8885 882 - #define CX700_94_500M 0x00820803 883 - #define CX700_97_750M 0x00870803 884 - #define CX700_101_000M 0x008B0803 885 - #define CX700_106_500M 0x00750802 886 - #define CX700_108_000M 0x00950803 887 - #define CX700_113_309M 0x005D0801 888 - #define CX700_118_840M 0x00A40803 889 - #define CX700_119_000M 0x00830802 890 - #define CX700_121_750M 0x00420800 /* 121.704MHz */ 891 - #define CX700_125_104M 0x00AD0803 892 - #define CX700_133_308M 0x00930802 893 - #define CX700_135_000M 0x00950802 894 - #define CX700_136_700M 0x00BD0803 895 - #define CX700_138_400M 0x00720801 896 - #define CX700_146_760M 0x00CC0803 897 - #define CX700_148_500M 0x00a40802 898 - #define CX700_153_920M 0x00540402 899 - #define CX700_156_000M 0x006B0403 900 - #define CX700_157_500M 0x006C0403 901 - #define CX700_162_000M 0x006F0403 902 - #define CX700_172_798M 0x00770403 903 - #define CX700_187_000M 0x00810403 904 - #define CX700_193_295M 0x00850403 905 - #define CX700_202_500M 0x008C0403 906 - #define CX700_204_000M 0x008D0403 907 - #define CX700_218_500M 0x00970403 908 - #define CX700_234_000M 0x00600401 909 - #define CX700_267_250M 0x00B90403 910 - #define CX700_297_500M 0x00CE0403 911 - #define CX700_122_614M 0x00870802 912 - 913 - /* PLL for VX855 */ 914 - #define VX855_22_000M 0x007B1005 915 - #define VX855_25_175M 0x008D1005 916 - #define VX855_26_719M 0x00961005 917 - #define VX855_26_880M 0x00961005 918 - #define VX855_27_000M 0x00971005 919 - #define VX855_29_581M 0x00A51005 920 - #define VX855_29_829M 0x00641003 921 - #define VX855_31_490M 0x00B01005 922 - #define VX855_31_500M 0x00B01005 923 - #define VX855_31_728M 0x008E1004 924 - #define VX855_32_668M 0x00921004 925 - #define VX855_36_000M 0x00A11004 926 - #define VX855_40_000M 0x00700C05 927 - #define VX855_41_291M 0x00730C05 928 - #define VX855_43_163M 0x00790C05 929 - #define VX855_45_250M 0x007F0C05 /* 45.46MHz */ 930 - #define VX855_46_000M 0x00670C04 931 - #define VX855_46_996M 0x00690C04 932 - #define VX855_48_000M 0x00860C05 933 - #define VX855_48_875M 0x00890C05 934 - #define VX855_49_500M 0x00530C03 935 - #define VX855_52_406M 0x00580C03 936 - #define VX855_52_977M 0x00940C05 937 - #define VX855_56_250M 0x009D0C05 938 - #define VX855_57_275M 0x009D8C85 /* Used by XO panel */ 939 - #define VX855_60_466M 0x00A90C05 940 - #define VX855_61_500M 0x00AC0C05 941 - #define VX855_65_000M 0x006D0C03 942 - #define VX855_65_178M 0x00B60C05 943 - #define VX855_66_750M 0x00700C03 /*67.116MHz */ 944 - #define VX855_67_295M 0x00BC0C05 945 - #define VX855_68_179M 0x00BF0C05 946 - #define VX855_68_369M 0x00BF0C05 947 - #define VX855_69_924M 0x00C30C05 948 - #define VX855_70_159M 0x00C30C05 949 - #define VX855_72_000M 0x00A10C04 950 - #define VX855_73_023M 0x00CC0C05 951 - #define VX855_74_481M 0x00D10C05 952 - #define VX855_78_750M 0x006E0805 953 - #define VX855_79_466M 0x006F0805 954 - #define VX855_80_136M 0x00700805 955 - #define VX855_81_627M 0x00720805 956 - #define VX855_83_375M 0x00750805 957 - #define VX855_83_527M 0x00750805 958 - #define VX855_83_950M 0x00750805 959 - #define VX855_84_537M 0x00760805 960 - #define VX855_84_750M 0x00760805 /* 84.537Mhz */ 961 - #define VX855_85_500M 0x00760805 /* 85.909080 MHz*/ 962 - #define VX855_85_860M 0x00760805 963 - #define VX855_85_909M 0x00760805 964 - #define VX855_88_750M 0x007C0805 965 - #define VX855_89_489M 0x007D0805 966 - #define VX855_94_500M 0x00840805 967 - #define VX855_96_648M 0x00870805 968 - #define VX855_97_750M 0x00890805 969 - #define VX855_101_000M 0x008D0805 970 - #define VX855_106_500M 0x00950805 971 - #define VX855_108_000M 0x00970805 972 - #define VX855_110_125M 0x00990805 973 - #define VX855_112_000M 0x009D0805 974 - #define VX855_113_309M 0x009F0805 975 - #define VX855_115_000M 0x00A10805 976 - #define VX855_118_840M 0x00A60805 977 - #define VX855_119_000M 0x00A70805 978 - #define VX855_121_750M 0x00AA0805 /* 121.704MHz */ 979 - #define VX855_122_614M 0x00AC0805 980 - #define VX855_126_266M 0x00B10805 981 - #define VX855_130_250M 0x00B60805 /* 130.250 */ 982 - #define VX855_135_000M 0x00BD0805 983 - #define VX855_136_700M 0x00BF0805 984 - #define VX855_137_750M 0x00C10805 985 - #define VX855_138_400M 0x00C20805 986 - #define VX855_144_300M 0x00CA0805 987 - #define VX855_146_760M 0x00CE0805 988 - #define VX855_148_500M 0x00D00805 989 - #define VX855_153_920M 0x00540402 990 - #define VX855_156_000M 0x006C0405 991 - #define VX855_156_867M 0x006E0405 992 - #define VX855_157_500M 0x006E0405 993 - #define VX855_162_000M 0x00710405 994 - #define VX855_172_798M 0x00790405 995 - #define VX855_187_000M 0x00830405 996 - #define VX855_193_295M 0x00870405 997 - #define VX855_202_500M 0x008E0405 998 - #define VX855_204_000M 0x008F0405 999 - #define VX855_218_500M 0x00990405 1000 - #define VX855_229_500M 0x00A10405 1001 - #define VX855_234_000M 0x00A40405 1002 - #define VX855_267_250M 0x00BB0405 1003 - #define VX855_297_500M 0x00D00405 1004 - #define VX855_339_500M 0x00770005 1005 - #define VX855_340_772M 0x00770005 1006 701 1007 702 1008 703 /* Definition CRTC Timing Index */