Message ID | 1342630144-16350-1-git-send-email-olaf@aepfle.de (mailing list archive) |
---|---|
State | New, archived |
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 -- 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 -- 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 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 */