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