Re: [PATCH -mm] fb: modedb uses wrong default_mode

From: Andrew Morton
Date: Wed Nov 15 2006 - 18:30:52 EST


On Wed, 15 Nov 2006 19:43:16 +0200 (EET)
Tero Roponen <teanropo@xxxxxx> wrote:

>
> It seems that default_mode is always overwritten in
> fb_find_mode() if caller gives its own modedb; this
> patch should fix it.
>
> dmesg diff before and after the following patch:
>
> neofb: mapped framebuffer at c4a80000
> -Mode (640x400) won't display properly on LCD
> -Mode (640x400) won't display properly on LCD
> -neofb v0.4.2: 2048kB VRAM, using 640x480, 31.469kHz, 59Hz
> -Console: switching to colour frame buffer device 80x30
> +neofb v0.4.2: 2048kB VRAM, using 800x600, 37.878kHz, 60Hz
> +Console: switching to colour frame buffer device 100x37
> fb0: MagicGraph 128XD frame buffer device
>
> Signed-off-by: Tero Roponen <teanropo@xxxxxx>
> ---
>
> --- linux-2.6.19-rc5-mm2/drivers/video/modedb.c.orig 2006-11-15 19:03:03.000000000 +0200
> +++ linux-2.6.19-rc5-mm2/drivers/video/modedb.c 2006-11-15 19:02:57.000000000 +0200
> @@ -507,7 +507,7 @@ int fb_find_mode(struct fb_var_screeninf
> }
> if (!default_mode && db != modedb)
> default_mode = &db[0];
> - else
> + else if (!default_mode)
> default_mode = &modedb[DEFAULT_MODEDB_INDEX];
>
> if (!default_bpp)

Sigh.

2.6.19-rc5 has:

if (!default_mode)
default_mode = &modedb[DEFAULT_MODEDB_INDEX];

and Jordan changed it to

if (!default_mode && db != modedb)
default_mode = &db[0];
else
default_mode = &modedb[DEFAULT_MODEDB_INDEX];

and you want to change it to

if (!default_mode && db != modedb)
default_mode = &db[0];
else if (!default_mode)
default_mode = &modedb[DEFAULT_MODEDB_INDEX];

which is actually a complicated way of doing

if (!default_mode)
default_mode = &db[DEFAULT_MODEDB_INDEX];

So let's do that.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/