ia64: move the screen_info setup to common code
authorChristoph Hellwig <hch@lst.de>
Tue, 13 Aug 2019 07:25:11 +0000 (09:25 +0200)
committerTony Luck <tony.luck@intel.com>
Fri, 16 Aug 2019 18:33:57 +0000 (11:33 -0700)
There is nothing really platform specific about setting about the
screen_info from the ia64_boot_param structure, so move it from the
dig machvec to common code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lkml.kernel.org/r/20190813072514.23299-26-hch@lst.de
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/dig/setup.c
arch/ia64/kernel/setup.c

index 0b1866d2462ab8157df9d9dee57b04cd30669b04..ca8be4617b2e8b05ef9021687b9e5fd621ee6cf0 100644 (file)
 void __init
 dig_setup (char **cmdline_p)
 {
-       unsigned int orig_x, orig_y, num_cols, num_rows, font_height;
-
 #ifdef CONFIG_SMP
        init_smp_config();
 #endif
-
-       memset(&screen_info, 0, sizeof(screen_info));
-
-       if (!ia64_boot_param->console_info.num_rows
-           || !ia64_boot_param->console_info.num_cols)
-       {
-               printk(KERN_WARNING "dig_setup: warning: invalid screen-info, guessing 80x25\n");
-               orig_x = 0;
-               orig_y = 0;
-               num_cols = 80;
-               num_rows = 25;
-               font_height = 16;
-       } else {
-               orig_x = ia64_boot_param->console_info.orig_x;
-               orig_y = ia64_boot_param->console_info.orig_y;
-               num_cols = ia64_boot_param->console_info.num_cols;
-               num_rows = ia64_boot_param->console_info.num_rows;
-               font_height = 400 / num_rows;
-       }
-
-       screen_info.orig_x = orig_x;
-       screen_info.orig_y = orig_y;
-       screen_info.orig_video_cols  = num_cols;
-       screen_info.orig_video_lines = num_rows;
-       screen_info.orig_video_points = font_height;
-       screen_info.orig_video_mode = 3;        /* XXX fake */
-       screen_info.orig_video_isVGA = 1;       /* XXX fake */
-       screen_info.orig_video_ega_bx = 3;      /* XXX fake */
 }
index 560f9833c665e8fae7be29af87372e449d0ee7c5..65d07c60f12da20fd553ca7282391e26aecebc78 100644 (file)
@@ -469,6 +469,39 @@ early_console_setup (char *cmdline)
        return -1;
 }
 
+static void __init
+screen_info_setup(void)
+{
+       unsigned int orig_x, orig_y, num_cols, num_rows, font_height;
+
+       memset(&screen_info, 0, sizeof(screen_info));
+
+       if (!ia64_boot_param->console_info.num_rows ||
+           !ia64_boot_param->console_info.num_cols) {
+               printk(KERN_WARNING "invalid screen-info, guessing 80x25\n");
+               orig_x = 0;
+               orig_y = 0;
+               num_cols = 80;
+               num_rows = 25;
+               font_height = 16;
+       } else {
+               orig_x = ia64_boot_param->console_info.orig_x;
+               orig_y = ia64_boot_param->console_info.orig_y;
+               num_cols = ia64_boot_param->console_info.num_cols;
+               num_rows = ia64_boot_param->console_info.num_rows;
+               font_height = 400 / num_rows;
+       }
+
+       screen_info.orig_x = orig_x;
+       screen_info.orig_y = orig_y;
+       screen_info.orig_video_cols  = num_cols;
+       screen_info.orig_video_lines = num_rows;
+       screen_info.orig_video_points = font_height;
+       screen_info.orig_video_mode = 3;        /* XXX fake */
+       screen_info.orig_video_isVGA = 1;       /* XXX fake */
+       screen_info.orig_video_ega_bx = 3;      /* XXX fake */
+}
+
 static inline void
 mark_bsp_online (void)
 {
@@ -609,6 +642,7 @@ setup_arch (char **cmdline_p)
        ROOT_DEV = Root_SDA2;           /* default to second partition on first drive */
 
        platform_setup(cmdline_p);
+       screen_info_setup();
        paging_init();
 
        clear_sched_clock_stable();