Message ID | 1342630144-16350-1-git-send-email-olaf@aepfle.de (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | e5ae3cdfd5741364e39705592b9aee9fb836f3d3 |
Delegated to: | Benjamin Herrenschmidt |
Headers | show |
On Thursday, July 19, 2012 1:49 AM, olaf@aepfle.de wrote: > From: Tony Breeds <tony@bakeyournoodle.com> > > These devices are set to 640x480 by firmware, switch them to 800x600@60 > so that the graphical installer can run on remote console. > > Reported by IBM during SLES10 SP2 beta testing: > > https://bugzilla.novell.com/show_bug.cgi?id=461002 > LTC50817 > > Signed-off-by: Olaf Hering <olaf@aepfle.de> If the author is Tony Breeds, please add 'Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>'. Best regards, Jingoo Han > > diff --git a/drivers/video/aty/radeon_monitor.c b/drivers/video/aty/radeon_monitor.c > index 9261c91..5c23eac 100644 > --- a/drivers/video/aty/radeon_monitor.c > +++ b/drivers/video/aty/radeon_monitor.c > @@ -730,6 +730,25 @@ static void radeon_videomode_to_var(struct fb_var_screeninfo *var, > var->vmode = mode->vmode; > } > > +#ifdef CONFIG_PPC_PSERIES > +static int is_powerblade(const char *model) > +{ > + struct device_node *root; > + const char* cp; > + int len, l, rc = 0; > + > + root = of_find_node_by_path("/"); > + if (root && model) { > + l = strlen(model); > + cp = of_get_property(root, "model", &len); > + if (cp) > + rc = memcmp(model, cp, min(len, l)) == 0; > + of_node_put(root); > + } > + return rc; > +} > +#endif > + > /* > * Build the modedb for head 1 (head 2 will come later), check panel infos > * from either BIOS or EDID, and pick up the default mode > @@ -865,6 +884,22 @@ void __devinit radeon_check_modes(struct radeonfb_info *rinfo, const char *mode_ > has_default_mode = 1; > } > > +#ifdef CONFIG_PPC_PSERIES > + if (!has_default_mode && ( > + is_powerblade("IBM,8842") || /* JS20 */ > + is_powerblade("IBM,8844") || /* JS21 */ > + is_powerblade("IBM,7998") || /* JS12/JS21/JS22 */ > + is_powerblade("IBM,0792") || /* QS21 */ > + is_powerblade("IBM,0793") /* QS22 */ > + )) { > + printk("Falling back to 800x600 on JSxx hardware\n"); > + if (fb_find_mode(&info->var, info, "800x600@60", > + info->monspecs.modedb, > + info->monspecs.modedb_len, NULL, 8) != 0) > + has_default_mode = 1; > + } > +#endif > + > /* > * Still no mode, let's pick up a default from the db > */ > -- > 1.7.10.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Jul 19, Jingoo Han wrote: > On Thursday, July 19, 2012 1:49 AM, olaf@aepfle.de wrote: > > From: Tony Breeds <tony@bakeyournoodle.com> > > > > These devices are set to 640x480 by firmware, switch them to 800x600@60 > > so that the graphical installer can run on remote console. > > > > Reported by IBM during SLES10 SP2 beta testing: > > > > https://bugzilla.novell.com/show_bug.cgi?id=461002 > > LTC50817 > > > > Signed-off-by: Olaf Hering <olaf@aepfle.de> > > If the author is Tony Breeds, please add 'Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>'. He provided the initial version of the change, but did not add his tag back in 2009. Tony, perhaps you can do that now? Olaf
On Wed, Jul 18, 2012 at 06:49:04PM +0200, olaf@aepfle.de wrote: Thanks for following this up. > From: Tony Breeds <tony@bakeyournoodle.com> > > These devices are set to 640x480 by firmware, switch them to 800x600@60 > so that the graphical installer can run on remote console. > > Reported by IBM during SLES10 SP2 beta testing: > > https://bugzilla.novell.com/show_bug.cgi?id=461002 > LTC50817 > > Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Tony Breeds <tony@bakeyournoodle.com> Yours Tony
diff --git a/drivers/video/aty/radeon_monitor.c b/drivers/video/aty/radeon_monitor.c index 9261c91..5c23eac 100644 --- a/drivers/video/aty/radeon_monitor.c +++ b/drivers/video/aty/radeon_monitor.c @@ -730,6 +730,25 @@ static void radeon_videomode_to_var(struct fb_var_screeninfo *var, var->vmode = mode->vmode; } +#ifdef CONFIG_PPC_PSERIES +static int is_powerblade(const char *model) +{ + struct device_node *root; + const char* cp; + int len, l, rc = 0; + + root = of_find_node_by_path("/"); + if (root && model) { + l = strlen(model); + cp = of_get_property(root, "model", &len); + if (cp) + rc = memcmp(model, cp, min(len, l)) == 0; + of_node_put(root); + } + return rc; +} +#endif + /* * Build the modedb for head 1 (head 2 will come later), check panel infos * from either BIOS or EDID, and pick up the default mode @@ -865,6 +884,22 @@ void __devinit radeon_check_modes(struct radeonfb_info *rinfo, const char *mode_ has_default_mode = 1; } +#ifdef CONFIG_PPC_PSERIES + if (!has_default_mode && ( + is_powerblade("IBM,8842") || /* JS20 */ + is_powerblade("IBM,8844") || /* JS21 */ + is_powerblade("IBM,7998") || /* JS12/JS21/JS22 */ + is_powerblade("IBM,0792") || /* QS21 */ + is_powerblade("IBM,0793") /* QS22 */ + )) { + printk("Falling back to 800x600 on JSxx hardware\n"); + if (fb_find_mode(&info->var, info, "800x600@60", + info->monspecs.modedb, + info->monspecs.modedb_len, NULL, 8) != 0) + has_default_mode = 1; + } +#endif + /* * Still no mode, let's pick up a default from the db */