Commit 4e189559 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Linus Torvalds

[PATCH] radeonfb: Fix newer PowerBook & warnings

This fixes a few warnings in radeonfb and add proper PLL divider values
for Apple latest PowerBook Aliminium 17" so the display isn't "fuzzy"
(the LVDS interface needs special PLL values that the driver can't
calculate, on most x86, the BIOS tells us the values to use, on Apple
laptops, we have to hard code them for each model).
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 55d7c851
...@@ -1868,7 +1868,7 @@ static int radeon_set_backlight_level(int level, void *data) ...@@ -1868,7 +1868,7 @@ static int radeon_set_backlight_level(int level, void *data)
#undef SET_MC_FB_FROM_APERTURE #undef SET_MC_FB_FROM_APERTURE
static void fixup_memory_mappings(struct radeonfb_info *rinfo) static void fixup_memory_mappings(struct radeonfb_info *rinfo)
{ {
u32 save_crtc_gen_cntl, save_crtc2_gen_cntl; u32 save_crtc_gen_cntl, save_crtc2_gen_cntl = 0;
u32 save_crtc_ext_cntl; u32 save_crtc_ext_cntl;
u32 aper_base, aper_size; u32 aper_base, aper_size;
u32 agp_base; u32 agp_base;
......
...@@ -55,7 +55,7 @@ static int __devinit radeon_parse_montype_prop(struct device_node *dp, u8 **out_ ...@@ -55,7 +55,7 @@ static int __devinit radeon_parse_montype_prop(struct device_node *dp, u8 **out_
u8 *pedid = NULL; u8 *pedid = NULL;
u8 *pmt = NULL; u8 *pmt = NULL;
u8 *tmp; u8 *tmp;
int i, mt; int i, mt = MT_NONE;
RTRACE("analyzing OF properties...\n"); RTRACE("analyzing OF properties...\n");
pmt = (u8 *)get_property(dp, "display-type", NULL); pmt = (u8 *)get_property(dp, "display-type", NULL);
...@@ -72,7 +72,9 @@ static int __devinit radeon_parse_montype_prop(struct device_node *dp, u8 **out_ ...@@ -72,7 +72,9 @@ static int __devinit radeon_parse_montype_prop(struct device_node *dp, u8 **out_
else if (strcmp(pmt, "NONE")) { else if (strcmp(pmt, "NONE")) {
printk(KERN_WARNING "radeonfb: Unknown OF display-type: %s\n", pmt); printk(KERN_WARNING "radeonfb: Unknown OF display-type: %s\n", pmt);
return MT_NONE; return MT_NONE;
} } else
return MT_NONE;
for (i = 0; propnames[i] != NULL; ++i) { for (i = 0; propnames[i] != NULL; ++i) {
pedid = (u8 *)get_property(dp, propnames[i], NULL); pedid = (u8 *)get_property(dp, propnames[i], NULL);
if (pedid != NULL) if (pedid != NULL)
...@@ -645,15 +647,23 @@ static void radeon_fixup_panel_info(struct radeonfb_info *rinfo) ...@@ -645,15 +647,23 @@ static void radeon_fixup_panel_info(struct radeonfb_info *rinfo)
rinfo->panel_info.fbk_divider = 0xad; rinfo->panel_info.fbk_divider = 0xad;
rinfo->panel_info.use_bios_dividers = 1; rinfo->panel_info.use_bios_dividers = 1;
} }
/* Aluminium PowerBook 15" */
if (machine_is_compatible("PowerBook5,4")) {
rinfo->panel_info.ref_divider = rinfo->pll.ref_div;
rinfo->panel_info.post_divider = 0x2;
rinfo->panel_info.fbk_divider = 0x8e;
rinfo->panel_info.use_bios_dividers = 1;
}
/* Aluminium PowerBook 17" */ /* Aluminium PowerBook 17" */
if (machine_is_compatible("PowerBook5,3")) { if (machine_is_compatible("PowerBook5,3") ||
machine_is_compatible("PowerBook5,5")) {
rinfo->panel_info.ref_divider = rinfo->pll.ref_div; rinfo->panel_info.ref_divider = rinfo->pll.ref_div;
rinfo->panel_info.post_divider = 0x4; rinfo->panel_info.post_divider = 0x4;
rinfo->panel_info.fbk_divider = 0x80; rinfo->panel_info.fbk_divider = 0x80;
rinfo->panel_info.use_bios_dividers = 1; rinfo->panel_info.use_bios_dividers = 1;
} }
/* iBook G4 */ /* iBook G4 */
if (machine_is_compatible("PowerBook6,3") | if (machine_is_compatible("PowerBook6,3") ||
machine_is_compatible("PowerBook6,5")) { machine_is_compatible("PowerBook6,5")) {
rinfo->panel_info.ref_divider = rinfo->pll.ref_div; rinfo->panel_info.ref_divider = rinfo->pll.ref_div;
rinfo->panel_info.post_divider = 0x6; rinfo->panel_info.post_divider = 0x6;
......
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