Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e7076389f48128b00dd3f33767fb60bd3f5a06a8
Commit:     e7076389f48128b00dd3f33767fb60bd3f5a06a8
Parent:     36f31a7084b8d20ced37afe92238c18ba769cdf3
Author:     Krzysztof Helt <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 16 01:29:08 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 09:43:18 2007 -0700

    s3c2410fb: make use of default_display settings
    
    This patch changes mode selection to always prefer default mode if possible
    and always honor type of display set by default mode settings.
    
    This patch is required in case the same display modes were defined for
    different panels (e.g.  STN and TFT).
    
    Signed-off-by: Krzysztof Helt <[EMAIL PROTECTED]>
    Signed-off-by: Antonino Daplas <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 drivers/video/s3c2410fb.c |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c
index f98e433..ae08d45 100644
--- a/drivers/video/s3c2410fb.c
+++ b/drivers/video/s3c2410fb.c
@@ -172,19 +172,28 @@ static int s3c2410fb_check_var(struct fb_var_screeninfo 
*var,
        struct s3c2410fb_info *fbi = info->par;
        struct s3c2410fb_mach_info *mach_info = fbi->dev->platform_data;
        struct s3c2410fb_display *display = NULL;
+       struct s3c2410fb_display *default_display = mach_info->displays +
+                                                   mach_info->default_display;
+       int type = default_display->type;
        unsigned i;
 
        dprintk("check_var(var=%p, info=%p)\n", var, info);
 
        /* validate x/y resolution */
-
-       for (i = 0; i < mach_info->num_displays; i++)
-               if (var->yres == mach_info->displays[i].yres &&
-                   var->xres == mach_info->displays[i].xres &&
-                   var->bits_per_pixel == mach_info->displays[i].bpp) {
-                       display = mach_info->displays + i;
-                       break;
-               }
+       /* choose default mode if possible */
+       if (var->yres == default_display->yres &&
+           var->xres == default_display->xres &&
+           var->bits_per_pixel == default_display->bpp)
+               display = default_display;
+       else
+               for (i = 0; i < mach_info->num_displays; i++)
+                       if (type == mach_info->displays[i].type &&
+                           var->yres == mach_info->displays[i].yres &&
+                           var->xres == mach_info->displays[i].xres &&
+                           var->bits_per_pixel == mach_info->displays[i].bpp) {
+                               display = mach_info->displays + i;
+                               break;
+                       }
 
        if (!display) {
                dprintk("wrong resolution or depth %dx%d at %d bpp\n",
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to