vgacon: rework screen_info #ifdef checks
authorArnd Bergmann <arnd@arndb.de>
Mon, 9 Oct 2023 21:18:38 +0000 (23:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Oct 2023 08:17:02 +0000 (10:17 +0200)
On non-x86 architectures, the screen_info variable is generally only
used for the VGA console where supported, and in some cases the EFI
framebuffer or vga16fb.

Now that we have a definite list of which architectures actually use it
for what, use consistent #ifdef checks so the global variable is only
defined when it is actually used on those architectures.

Loongarch and riscv have no support for vgacon or vga16fb, but
they support EFI firmware, so only that needs to be checked, and the
initialization can be removed because that is handled by EFI.
IA64 has both vgacon and EFI, though EFI apparently never uses
a framebuffer here.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Khalid Aziz <khalid@gonehiking.org>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20231009211845.3136536-3-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/alpha/kernel/setup.c
arch/alpha/kernel/sys_sio.c
arch/ia64/kernel/setup.c
arch/loongarch/kernel/setup.c
arch/mips/kernel/setup.c
arch/mips/sibyte/swarm/setup.c
arch/mips/sni/setup.c
arch/riscv/kernel/setup.c

index c80258ec332ffe77005f6bc8d7b76b0e7fb69878..85a679ce061c258bc2788ad184987feb25835dc2 100644 (file)
@@ -131,6 +131,7 @@ static void determine_cpu_caches (unsigned int);
 
 static char __initdata command_line[COMMAND_LINE_SIZE];
 
+#ifdef CONFIG_VGA_CONSOLE
 /*
  * The format of "screen_info" is strange, and due to early
  * i386-setup code. This is just enough to make the console
@@ -147,6 +148,7 @@ struct screen_info screen_info = {
 };
 
 EXPORT_SYMBOL(screen_info);
+#endif
 
 /*
  * The direct map I/O window, if any.  This should be the same
index 7c420d8dac53d9da2d2ccc38ec09878a6472df67..7de8a5d2d20667e8d0845181933ba99d5beffa0c 100644 (file)
@@ -57,11 +57,13 @@ sio_init_irq(void)
 static inline void __init
 alphabook1_init_arch(void)
 {
+#ifdef CONFIG_VGA_CONSOLE
        /* The AlphaBook1 has LCD video fixed at 800x600,
           37 rows and 100 cols. */
        screen_info.orig_y = 37;
        screen_info.orig_video_cols = 100;
        screen_info.orig_video_lines = 37;
+#endif
 
        lca_init_arch();
 }
index 5a55ac82c13a47e86ca6e79db1469ce508edbdce..d2c66efdde560e6563c5c6d0f9031aba9ccc5b8f 100644 (file)
@@ -86,9 +86,13 @@ EXPORT_SYMBOL(local_per_cpu_offset);
 #endif
 unsigned long ia64_cycles_per_usec;
 struct ia64_boot_param *ia64_boot_param;
+#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_EFI)
 struct screen_info screen_info;
+#endif
+#ifdef CONFIG_VGA_CONSOLE
 unsigned long vga_console_iobase;
 unsigned long vga_console_membase;
+#endif
 
 static struct resource data_resource = {
        .name   = "Kernel data",
@@ -497,6 +501,7 @@ early_console_setup (char *cmdline)
 static void __init
 screen_info_setup(void)
 {
+#ifdef CONFIG_VGA_CONSOLE
        unsigned int orig_x, orig_y, num_cols, num_rows, font_height;
 
        memset(&screen_info, 0, sizeof(screen_info));
@@ -525,6 +530,7 @@ screen_info_setup(void)
        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 */
+#endif
 }
 
 static inline void
index 7783f0a3d742c7e0cce68d93cc9252eee4e7f381..4ae0ad43c354ee39f8258242a51dd7519bb379fc 100644 (file)
@@ -57,7 +57,9 @@
 #define SMBIOS_CORE_PACKAGE_OFFSET     0x23
 #define LOONGSON_EFI_ENABLE            (1 << 3)
 
+#ifdef CONFIG_EFI
 struct screen_info screen_info __section(".data");
+#endif
 
 unsigned long fw_arg0, fw_arg1, fw_arg2;
 DEFINE_PER_CPU(unsigned long, kernelsp);
index cb871eb784a7c12819666e50bd45cd576bc0e363..1aba7dc95132c319ff8c875c4c57718f8021095d 100644 (file)
@@ -54,7 +54,7 @@ struct cpuinfo_mips cpu_data[NR_CPUS] __read_mostly;
 
 EXPORT_SYMBOL(cpu_data);
 
-#ifdef CONFIG_VT
+#ifdef CONFIG_VGA_CONSOLE
 struct screen_info screen_info;
 #endif
 
index 76683993cdd3adbe94d85d6f37bf461ff2df57a8..37df504d3ecbb0c15a6b4dcaf5f9883f2f78b954 100644 (file)
@@ -129,7 +129,7 @@ void __init plat_mem_setup(void)
        if (m41t81_probe())
                swarm_rtc_type = RTC_M41T81;
 
-#ifdef CONFIG_VT
+#ifdef CONFIG_VGA_CONSOLE
        screen_info = (struct screen_info) {
                .orig_video_page        = 52,
                .orig_video_mode        = 3,
index efad85c8c823b9377c88322d5def836eb494eb59..9984cf91be7d047e928f9130a6bc3b11f0bfca57 100644 (file)
@@ -38,7 +38,7 @@ extern void sni_machine_power_off(void);
 
 static void __init sni_display_setup(void)
 {
-#if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE) && defined(CONFIG_FW_ARC)
+#if defined(CONFIG_VGA_CONSOLE) && defined(CONFIG_FW_ARC)
        struct screen_info *si = &screen_info;
        DISPLAY_STATUS *di;
 
index aac853ae4eb74e8e228551eb94720611e241c32c..0c466a50f1744e7f068d56c7caad845a39cf64eb 100644 (file)
 
 #include "head.h"
 
-#if defined(CONFIG_DUMMY_CONSOLE) || defined(CONFIG_EFI)
-struct screen_info screen_info __section(".data") = {
-       .orig_video_lines       = 30,
-       .orig_video_cols        = 80,
-       .orig_video_mode        = 0,
-       .orig_video_ega_bx      = 0,
-       .orig_video_isVGA       = 1,
-       .orig_video_points      = 8
-};
+#if defined(CONFIG_EFI)
+struct screen_info screen_info __section(".data");
 #endif
 
 /*