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: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Joseph Chan <JosephChan@via.com.tw>
parent cc3fd679
This diff is collapsed.
...@@ -700,12 +700,18 @@ struct _lcd_scaling_factor { ...@@ -700,12 +700,18 @@ struct _lcd_scaling_factor {
struct _lcd_ver_scaling_factor lcd_ver_scaling_factor; struct _lcd_ver_scaling_factor lcd_ver_scaling_factor;
}; };
struct pll_config {
u16 multiplier;
u8 divisor;
u8 rshift;
};
struct pll_map { struct pll_map {
u32 clk; u32 clk;
u32 cle266_pll; struct pll_config cle266_pll;
u32 k800_pll; struct pll_config k800_pll;
u32 cx700_pll; struct pll_config cx700_pll;
u32 vx855_pll; struct pll_config vx855_pll;
}; };
struct rgbLUT { struct rgbLUT {
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment