Merge tag 'tty-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[linux-2.6-microblaze.git] / drivers / video / fbdev / core / fbcon.c
index 1a9aa12..cf9ac4d 100644 (file)
@@ -125,8 +125,8 @@ static int logo_lines;
    enums.  */
 static int logo_shown = FBCON_LOGO_CANSHOW;
 /* console mappings */
-static int first_fb_vc;
-static int last_fb_vc = MAX_NR_CONSOLES - 1;
+static unsigned int first_fb_vc;
+static unsigned int last_fb_vc = MAX_NR_CONSOLES - 1;
 static int fbcon_is_default = 1; 
 static int primary_device = -1;
 static int fbcon_has_console_bind;
@@ -440,10 +440,12 @@ static int __init fb_console_setup(char *this_opt)
                        options += 3;
                        if (*options)
                                first_fb_vc = simple_strtoul(options, &options, 10) - 1;
-                       if (first_fb_vc < 0)
+                       if (first_fb_vc >= MAX_NR_CONSOLES)
                                first_fb_vc = 0;
                        if (*options++ == '-')
                                last_fb_vc = simple_strtoul(options, &options, 10) - 1;
+                       if (last_fb_vc < first_fb_vc || last_fb_vc >= MAX_NR_CONSOLES)
+                               last_fb_vc = MAX_NR_CONSOLES - 1;
                        fbcon_is_default = 0; 
                        continue;
                }
@@ -1058,9 +1060,9 @@ static void fbcon_init(struct vc_data *vc, int init)
                        vc->vc_complement_mask <<= 1;
        }
 
-       if (!*svc->vc_uni_pagedir_loc)
+       if (!*svc->uni_pagedict_loc)
                con_set_default_unimap(svc);
-       if (!*vc->vc_uni_pagedir_loc)
+       if (!*vc->uni_pagedict_loc)
                con_copy_unimap(vc, svc);
 
        ops = info->fbcon_par;
@@ -1382,9 +1384,9 @@ static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var,
                        vc->vc_complement_mask <<= 1;
        }
 
-       if (!*svc->vc_uni_pagedir_loc)
+       if (!*svc->uni_pagedict_loc)
                con_set_default_unimap(svc);
-       if (!*vc->vc_uni_pagedir_loc)
+       if (!*vc->uni_pagedict_loc)
                con_copy_unimap(vc, svc);
 
        cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres);
@@ -1758,8 +1760,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
        case SM_UP:
                if (count > vc->vc_rows)        /* Maximum realistic size */
                        count = vc->vc_rows;
-               if (logo_shown >= 0)
-                       goto redraw_up;
                switch (fb_scrollmode(p)) {
                case SCROLL_MOVE:
                        fbcon_redraw_blit(vc, info, p, t, b - t - count,
@@ -1848,8 +1848,6 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
        case SM_DOWN:
                if (count > vc->vc_rows)        /* Maximum realistic size */
                        count = vc->vc_rows;
-               if (logo_shown >= 0)
-                       goto redraw_down;
                switch (fb_scrollmode(p)) {
                case SCROLL_MOVE:
                        fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
@@ -2182,7 +2180,6 @@ static int fbcon_switch(struct vc_data *vc)
        if (logo_shown == FBCON_LOGO_DRAW) {
 
                logo_shown = fg_console;
-               /* This is protected above by initmem_freed */
                fb_show_logo(info, ops->rotate);
                update_region(vc,
                              vc->vc_origin + vc->vc_size_row * vc->vc_top,