[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <392b33e3-18b2-73b6-f804-7a7ec1de0b99@gonehiking.org>
Date: Thu, 20 Jul 2023 12:49:43 -0600
From: Khalid Aziz <khalid@...ehiking.org>
To: Arnd Bergmann <arnd@...nel.org>, linux-fbdev@...r.kernel.org,
Thomas Zimmermann <tzimmermann@...e.de>,
Helge Deller <deller@....de>,
Javier Martinez Canillas <javierm@...hat.com>
Cc: Arnd Bergmann <arnd@...db.de>,
"David S. Miller" <davem@...emloft.net>,
"K. Y. Srinivasan" <kys@...rosoft.com>,
Ard Biesheuvel <ardb@...nel.org>,
Borislav Petkov <bp@...en8.de>, Brian Cain <bcain@...cinc.com>,
Catalin Marinas <catalin.marinas@....com>,
Christophe Leroy <christophe.leroy@...roup.eu>,
Daniel Vetter <daniel@...ll.ch>,
Dave Hansen <dave.hansen@...ux.intel.com>,
David Airlie <airlied@...il.com>,
Deepak Rawat <drawat.floss@...il.com>,
Dexuan Cui <decui@...rosoft.com>,
Dinh Nguyen <dinguyen@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Guo Ren <guoren@...nel.org>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Huacai Chen <chenhuacai@...nel.org>,
Ingo Molnar <mingo@...hat.com>,
John Paul Adrian Glaubitz <glaubitz@...sik.fu-berlin.de>,
Linus Walleij <linus.walleij@...aro.org>,
Matt Turner <mattst88@...il.com>,
Max Filippov <jcmvbkbc@...il.com>,
Michael Ellerman <mpe@...erman.id.au>,
Nicholas Piggin <npiggin@...il.com>,
Palmer Dabbelt <palmer@...belt.com>,
Russell King <linux@...linux.org.uk>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Thomas Gleixner <tglx@...utronix.de>,
WANG Xuerui <kernel@...0n.name>, Wei Liu <wei.liu@...nel.org>,
Will Deacon <will@...nel.org>, x86@...nel.org,
linux-alpha@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-efi@...r.kernel.org,
linux-csky@...r.kernel.org, linux-hexagon@...r.kernel.org,
linux-ia64@...r.kernel.org, loongarch@...ts.linux.dev,
linux-mips@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-riscv@...ts.infradead.org, linux-sh@...r.kernel.org,
sparclinux@...r.kernel.org, linux-hyperv@...r.kernel.org,
dri-devel@...ts.freedesktop.org
Subject: Re: [PATCH v2 2/9] vgacon: rework screen_info #ifdef checks
On 7/19/23 6:39 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@...db.de>
>
> 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@...hat.com>
> Reviewed-by: Thomas Zimmermann <tzimmermann@...e.de>
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
Reviewed-by: Khalid Aziz <khalid@...ehiking.org>
> ---
> v2 changes:
> - split out mips/jazz change
> - improve ia64 #ifdef changes
> ---
> arch/alpha/kernel/setup.c | 2 ++
> arch/alpha/kernel/sys_sio.c | 2 ++
> arch/ia64/kernel/setup.c | 6 ++++++
> arch/loongarch/kernel/setup.c | 2 ++
> arch/mips/kernel/setup.c | 2 +-
> arch/mips/sibyte/swarm/setup.c | 2 +-
> arch/mips/sni/setup.c | 2 +-
> arch/riscv/kernel/setup.c | 11 ++---------
> 8 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
> index b650ff1cb022e..b4d2297765c02 100644
> --- a/arch/alpha/kernel/setup.c
> +++ b/arch/alpha/kernel/setup.c
> @@ -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
> diff --git a/arch/alpha/kernel/sys_sio.c b/arch/alpha/kernel/sys_sio.c
> index 7c420d8dac53d..7de8a5d2d2066 100644
> --- a/arch/alpha/kernel/sys_sio.c
> +++ b/arch/alpha/kernel/sys_sio.c
> @@ -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();
> }
> diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
> index 5a55ac82c13a4..d2c66efdde560 100644
> --- a/arch/ia64/kernel/setup.c
> +++ b/arch/ia64/kernel/setup.c
> @@ -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
> diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c
> index 95e6b579dfdd1..77e7a3722caa6 100644
> --- a/arch/loongarch/kernel/setup.c
> +++ b/arch/loongarch/kernel/setup.c
> @@ -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);
> diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
> index cb871eb784a7c..1aba7dc95132c 100644
> --- a/arch/mips/kernel/setup.c
> +++ b/arch/mips/kernel/setup.c
> @@ -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
>
> diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c
> index 76683993cdd3a..37df504d3ecbb 100644
> --- a/arch/mips/sibyte/swarm/setup.c
> +++ b/arch/mips/sibyte/swarm/setup.c
> @@ -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,
> diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c
> index efad85c8c823b..9984cf91be7d0 100644
> --- a/arch/mips/sni/setup.c
> +++ b/arch/mips/sni/setup.c
> @@ -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;
>
> diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
> index 971fe776e2f8b..a3dbe13f45fb3 100644
> --- a/arch/riscv/kernel/setup.c
> +++ b/arch/riscv/kernel/setup.c
> @@ -39,15 +39,8 @@
>
> #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
>
> /*
Powered by blists - more mailing lists