[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20061117124013.b6e4183d.akpm@osdl.org>
Date: Fri, 17 Nov 2006 12:40:13 -0800
From: Andrew Morton <akpm@...l.org>
To: James Simmons <jsimmons@...radead.org>
Cc: linux-fbdev-devel@...ts.sourceforge.net,
Tero Roponen <teanropo@....fi>, linux-kernel@...r.kernel.org
Subject: Re: [Linux-fbdev-devel] fb: modedb uses wrong default_mode
On Fri, 17 Nov 2006 20:08:47 +0000 (GMT)
James Simmons <jsimmons@...radead.org> wrote:
> Who knows how many drivers get this wrong. BTW Jordan is right.
> DEFAULT_MODEDB_INDEX is unless. Also we don't need dbsize anymore.
> Jordan did point out a error in fb_find_mode. It should be
>
> if (!db)
> db = modedb;
> dbsize = ARRAY_SIZE(modedb);
>
> if (!default_mode)
> default_mode = &db[DEFAULT_MODEDB_INDEX];
> if (!default_bpp)
> default_bpp = 8;
>
> db will always be set.
I think we do need dbsize, and that the code which I have now:
int fb_find_mode(struct fb_var_screeninfo *var,
struct fb_info *info, const char *mode_option,
const struct fb_videomode *db, unsigned int dbsize,
const struct fb_videomode *default_mode,
unsigned int default_bpp)
{
int i;
/* Set up defaults */
if (!db) {
db = modedb;
dbsize = ARRAY_SIZE(modedb);
}
if (!default_mode)
default_mode = &db[0];
if (!default_bpp)
default_bpp = 8;
is appropriate?
Here's the current version of this monster patch:
From: Jordan Crouse <jordan.crouse@....com>
If no default mode is specified, it should be grabbed from the supplied
database, not the default one.
[teanropo@....fi: fix it]
[akpm@...l.org: simplify it]
[akpm@...l.org: remove pointless DEFAULT_MODEDB_INDEX]
Signed-off-by: Jordan Crouse <jordan.crouse@....com>
Cc: Geert Uytterhoeven <geert@...ux-m68k.org>
Cc: "Antonino A. Daplas" <adaplas@....net>
Signed-off-by: Tero Roponen <teanropo@....fi>
Cc: James Simmons <jsimmons@...radead.org>
Signed-off-by: Andrew Morton <akpm@...l.org>
---
drivers/video/modedb.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff -puN drivers/video/modedb.c~video-get-the-default-mode-from-the-right-database drivers/video/modedb.c
--- a/drivers/video/modedb.c~video-get-the-default-mode-from-the-right-database
+++ a/drivers/video/modedb.c
@@ -34,8 +34,6 @@ const char *global_mode_option;
* Standard video mode definitions (taken from XFree86)
*/
-#define DEFAULT_MODEDB_INDEX 0
-
static const struct fb_videomode modedb[] = {
{
/* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -505,8 +503,10 @@ int fb_find_mode(struct fb_var_screeninf
db = modedb;
dbsize = ARRAY_SIZE(modedb);
}
+
if (!default_mode)
- default_mode = &modedb[DEFAULT_MODEDB_INDEX];
+ default_mode = &db[0];
+
if (!default_bpp)
default_bpp = 8;
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists