mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-04-02 07:51:55 +00:00
[PATCH] nvidiafb: Add boot option 'bpp'
Add boot/module option 'bpp' so user can specify at what color depth to boot into. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
af5d0f7e2b
commit
ade9185a39
@ -428,6 +428,7 @@ static int noaccel __devinitdata = 0;
|
|||||||
static int noscale __devinitdata = 0;
|
static int noscale __devinitdata = 0;
|
||||||
static int paneltweak __devinitdata = 0;
|
static int paneltweak __devinitdata = 0;
|
||||||
static int vram __devinitdata = 0;
|
static int vram __devinitdata = 0;
|
||||||
|
static int bpp __devinitdata = 8;
|
||||||
#ifdef CONFIG_MTRR
|
#ifdef CONFIG_MTRR
|
||||||
static int nomtrr __devinitdata = 0;
|
static int nomtrr __devinitdata = 0;
|
||||||
#endif
|
#endif
|
||||||
@ -1392,24 +1393,36 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info)
|
|||||||
info->monspecs.modedb_len, &info->modelist);
|
info->monspecs.modedb_len, &info->modelist);
|
||||||
fb_var_to_videomode(&modedb, &nvidiafb_default_var);
|
fb_var_to_videomode(&modedb, &nvidiafb_default_var);
|
||||||
|
|
||||||
|
switch (bpp) {
|
||||||
|
case 0 ... 8:
|
||||||
|
bpp = 8;
|
||||||
|
break;
|
||||||
|
case 9 ... 16:
|
||||||
|
bpp = 16;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
bpp = 32;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (specs->modedb != NULL) {
|
if (specs->modedb != NULL) {
|
||||||
struct fb_videomode *modedb;
|
struct fb_videomode *modedb;
|
||||||
|
|
||||||
modedb = fb_find_best_display(specs, &info->modelist);
|
modedb = fb_find_best_display(specs, &info->modelist);
|
||||||
fb_videomode_to_var(&nvidiafb_default_var, modedb);
|
fb_videomode_to_var(&nvidiafb_default_var, modedb);
|
||||||
nvidiafb_default_var.bits_per_pixel = 8;
|
nvidiafb_default_var.bits_per_pixel = bpp;
|
||||||
} else if (par->fpWidth && par->fpHeight) {
|
} else if (par->fpWidth && par->fpHeight) {
|
||||||
char buf[16];
|
char buf[16];
|
||||||
|
|
||||||
memset(buf, 0, 16);
|
memset(buf, 0, 16);
|
||||||
snprintf(buf, 15, "%dx%dMR", par->fpWidth, par->fpHeight);
|
snprintf(buf, 15, "%dx%dMR", par->fpWidth, par->fpHeight);
|
||||||
fb_find_mode(&nvidiafb_default_var, info, buf, specs->modedb,
|
fb_find_mode(&nvidiafb_default_var, info, buf, specs->modedb,
|
||||||
specs->modedb_len, &modedb, 8);
|
specs->modedb_len, &modedb, bpp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode_option)
|
if (mode_option)
|
||||||
fb_find_mode(&nvidiafb_default_var, info, mode_option,
|
fb_find_mode(&nvidiafb_default_var, info, mode_option,
|
||||||
specs->modedb, specs->modedb_len, &modedb, 8);
|
specs->modedb, specs->modedb_len, &modedb, bpp);
|
||||||
|
|
||||||
info->var = nvidiafb_default_var;
|
info->var = nvidiafb_default_var;
|
||||||
info->fix.visual = (info->var.bits_per_pixel == 8) ?
|
info->fix.visual = (info->var.bits_per_pixel == 8) ?
|
||||||
@ -1769,6 +1782,8 @@ static int __devinit nvidiafb_setup(char *options)
|
|||||||
#endif
|
#endif
|
||||||
} else if (!strncmp(this_opt, "fpdither:", 9)) {
|
} else if (!strncmp(this_opt, "fpdither:", 9)) {
|
||||||
fpdither = simple_strtol(this_opt+9, NULL, 0);
|
fpdither = simple_strtol(this_opt+9, NULL, 0);
|
||||||
|
} else if (!strncmp(this_opt, "bpp:", 4)) {
|
||||||
|
bpp = simple_strtoul(this_opt+4, NULL, 0);
|
||||||
} else
|
} else
|
||||||
mode_option = this_opt;
|
mode_option = this_opt;
|
||||||
}
|
}
|
||||||
@ -1846,7 +1861,9 @@ MODULE_PARM_DESC(vram,
|
|||||||
"(default=0 - remap entire memory)");
|
"(default=0 - remap entire memory)");
|
||||||
module_param(mode_option, charp, 0);
|
module_param(mode_option, charp, 0);
|
||||||
MODULE_PARM_DESC(mode_option, "Specify initial video mode");
|
MODULE_PARM_DESC(mode_option, "Specify initial video mode");
|
||||||
|
module_param(bpp, int, 0);
|
||||||
|
MODULE_PARM_DESC(bpp, "pixel width in bits"
|
||||||
|
"(default=8)");
|
||||||
#ifdef CONFIG_MTRR
|
#ifdef CONFIG_MTRR
|
||||||
module_param(nomtrr, bool, 0);
|
module_param(nomtrr, bool, 0);
|
||||||
MODULE_PARM_DESC(nomtrr, "Disables MTRR support (0 or 1=disabled) "
|
MODULE_PARM_DESC(nomtrr, "Disables MTRR support (0 or 1=disabled) "
|
||||||
|
Loading…
x
Reference in New Issue
Block a user