Messages in this thread | | | Date | Fri, 30 Apr 2004 14:07:13 -0400 | From | Timothy Miller <> | Subject | Re: [PATCH] Framebuffer Layer - Radeonfb, kernel 2.6.5 |
| |
One bug I've noticed with the 2.4 radeonfb driver is this:
If you specify a resolution different from what EDID reports, what you get on screen is the resolution reported by EDID physically, but virtually the resolution requested. That is, if I ask for 1280x1024, but EDID says 1024x768, I see the upper left 1024x768 of the 1280x1024 screen that the console is being displayed on.
Douglas Mayle wrote: > I've written two small modifications, one to the frame buffer code, and > one to the radeonfb driver. > > In fbmem.c, I've added an error message for people who specify a video= > line with an invalid device name to help users save on troubleshooting > time. > > In radeonfb_monitor.c the bpp attribute is completely ignored, and 8 is > hardcoded in as a default. I've changed the code to read the default > bpp from the default mode. (Most users will never notice the > difference, but I changed the default mode, and was baffled as to why > the color depth didn't change.) > > > ------------------------------------------------------------------------ > > --- linux-2.6.5/drivers/video/fbmem.c 2004-04-30 15:02:10.000000000 +0200 > +++ patch/drivers/video/fbmem.c 2004-04-30 15:09:03.560390512 +0200 > @@ -1470,6 +1470,18 @@ > * If we get here no fb was specified. > * We consider the argument to be a global video mode option. > */ > + > + if (strchr(options, ':') != NULL) { > + /* > + * If a colon is in the string, then the user entered > + * the wrong name for the fb device. We'll inform them > + * of this. > + */ > + int fbnamelen = strchr(options, ':') - options; > + options[fbnamelen] = '\0'; > + printk ("Requested framebuffer device '%s' not found\n", options); > + options[fbnamelen] = ':'; > + } > global_mode_option = options; > return 0; > } > --- linux-2.6.5/drivers/video/aty/radeon_monitor.c 2004-04-30 15:02:10.000000000 +0200 > +++ patch/drivers/video/aty/radeon_monitor.c 2004-04-30 15:09:03.559390664 +0200 > @@ -854,12 +854,15 @@ > */ > if (!has_default_mode || mode_option) { > struct fb_videomode default_mode; > + unsigned int default_bpp = 8; > if (has_default_mode) > radeon_var_to_videomode(&default_mode, &rinfo->info->var); > - else > + else { > radeon_var_to_videomode(&default_mode, &radeonfb_default_var); > + default_bpp = radeonfb_default_var.bits_per_pixel; > + } > if (fb_find_mode(&rinfo->info->var, rinfo->info, mode_option, > - rinfo->mon1_modedb, rinfo->mon1_dbsize, &default_mode, 8) == 0) > + rinfo->mon1_modedb, rinfo->mon1_dbsize, &default_mode, default_bpp) == 0) > rinfo->info->var = radeonfb_default_var; > } >
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |