linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] vgacon: rework Kconfig dependencies
@ 2023-07-07  9:52 Arnd Bergmann
  2023-07-07  9:52 ` [PATCH 2/4] vgacon: rework screen_info #ifdef checks Arnd Bergmann
                   ` (6 more replies)
  0 siblings, 7 replies; 22+ messages in thread
From: Arnd Bergmann @ 2023-07-07  9:52 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, linux-riscv,
	linux-csky

From: Arnd Bergmann <arnd@arndb.de>

The list of dependencies here is phrased as an opt-out, but this is missing
a lot of architectures that don't actually support VGA consoles, and some
of the entries are stale:

 - powerpc used to support VGA consoles in the old arch/ppc codebase, but
   the merged arch/powerpc never did

 - arm lists footbridge, integrator and netwinder, but netwinder is actually
   part of footbridge, and integrator does not appear to have an actual
   VGA hardware, or list it in its ATAG or DT.

 - mips has a few platforms (jazz, sibyte, and sni) that initialize
   screen_info, on everything else the console is selected but cannot
   actually work.

 - csky, hexgagon, loongarch, nios2, riscv and xtensa are not listed
   in the opt-out table and declare a screen_info to allow building
   vga_con, but this cannot work because the console is never selected.

Replace this with an opt-in table that lists only the platforms that
remain. This is effectively x86, plus a couple of historic workstation
and server machines that reused parts of the x86 system architecture.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/video/console/Kconfig | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index a2a88d42edf0c..47c498defc211 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -7,9 +7,9 @@ menu "Console display driver support"
 
 config VGA_CONSOLE
 	bool "VGA text console" if EXPERT || !X86
-	depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC &&  !SUPERH && \
-		(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
-		!ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !S390 && !UML
+	depends on ALPHA || IA64 || X86 || \
+		(ARM && ARCH_FOOTBRIDGE) || \
+		(MIPS && (MIPS_MALTA || SIBYTE_BCM112X || SIBYTE_SB1250 || SIBYTE_BCM1x80 || SNI_RM))
 	select APERTURE_HELPERS if (DRM || FB || VFIO_PCI_CORE)
 	default y
 	help
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/4] vgacon: rework screen_info #ifdef checks
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
@ 2023-07-07  9:52 ` Arnd Bergmann
  2023-07-07 13:40   ` Javier Martinez Canillas
  2023-07-08 14:11   ` Thomas Bogendoerfer
  2023-07-07  9:52 ` [PATCH 3/4] dummycon: limit Arm console size hack to footbridge Arnd Bergmann
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 22+ messages in thread
From: Arnd Bergmann @ 2023-07-07  9:52 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Richard Henderson, Ivan Kokshaysky, Matt Turner, Huacai Chen,
	WANG Xuerui, Thomas Bogendoerfer, Michael Ellerman,
	Nicholas Piggin, Christophe Leroy, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, linux-alpha, linux-ia64, loongarch, linux-mips,
	linuxppc-dev, linux-riscv

From: Arnd Bergmann <arnd@arndb.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.

On powerpc, there is no support for vgacon, but there is support for
vga16fb. 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.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/alpha/kernel/setup.c          |  2 ++
 arch/alpha/kernel/sys_sio.c        |  2 ++
 arch/ia64/kernel/setup.c           |  4 ++++
 arch/loongarch/kernel/setup.c      |  2 ++
 arch/mips/jazz/setup.c             |  2 +-
 arch/mips/kernel/setup.c           |  2 +-
 arch/mips/sibyte/swarm/setup.c     |  2 +-
 arch/mips/sni/setup.c              |  2 +-
 arch/powerpc/kernel/setup-common.c |  2 +-
 arch/riscv/kernel/setup.c          | 11 ++---------
 10 files changed, 17 insertions(+), 14 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..0c09ff7fde46b 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -86,9 +86,11 @@ 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;
 unsigned long vga_console_iobase;
 unsigned long vga_console_membase;
+#endif
 
 static struct resource data_resource = {
 	.name	= "Kernel data",
@@ -497,6 +499,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 +528,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 78a00359bde3c..6b3932677f5de 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/jazz/setup.c b/arch/mips/jazz/setup.c
index ee044261eb223..3c14548353e47 100644
--- a/arch/mips/jazz/setup.c
+++ b/arch/mips/jazz/setup.c
@@ -76,7 +76,7 @@ void __init plat_mem_setup(void)
 
 	_machine_restart = jazz_machine_restart;
 
-#ifdef CONFIG_VT
+#ifdef CONFIG_VGA_CONSOLE
 	screen_info = (struct screen_info) {
 		.orig_video_cols	= 160,
 		.orig_video_lines	= 64,
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/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index d2a446216444f..b717875a12a9a 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -98,6 +98,7 @@ int boot_cpu_hwid = -1;
 int dcache_bsize;
 int icache_bsize;
 
+#if IS_ENABLED(CONFIG_FB_VGA16)
 /*
  * This still seems to be needed... -- paulus
  */ 
@@ -109,7 +110,6 @@ struct screen_info screen_info = {
 	.orig_video_isVGA = 1,
 	.orig_video_points = 16
 };
-#if defined(CONFIG_FB_VGA16_MODULE)
 EXPORT_SYMBOL(screen_info);
 #endif
 
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
 
 /*
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 3/4] dummycon: limit Arm console size hack to footbridge
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
  2023-07-07  9:52 ` [PATCH 2/4] vgacon: rework screen_info #ifdef checks Arnd Bergmann
@ 2023-07-07  9:52 ` Arnd Bergmann
  2023-07-07 11:33   ` Linus Walleij
  2023-07-07 13:41   ` Javier Martinez Canillas
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
                   ` (4 subsequent siblings)
  6 siblings, 2 replies; 22+ messages in thread
From: Arnd Bergmann @ 2023-07-07  9:52 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Linus Walleij, Russell King (Oracle),
	linux-arm-kernel

From: Arnd Bergmann <arnd@arndb.de>

The dummycon default console size used to be determined by architecture,
but now this is a Kconfig setting on everything except ARM. Tracing this
back in the historic git trees, this was used to match the size of VGA
console or VGA framebuffer on early machines, but nowadays that code is
no longer used, except probably on the old footbridge/netwinder since
that is the only one that supports vgacon.

On machines with a framebuffer, booting with DT so far results in always
using the hardcoded 80x30 size in dummycon, while on ATAGS the setting
can come from a bootloader specific override. Both seem to be worse
choices than the Kconfig setting, since the actual text size for fbcon
also depends on the selected font.

Make this work the same way as everywhere else and use the normal
Kconfig setting, except for the footbridge with vgacon, which keeps
using the traditional code. If vgacon is disabled, footbridge can
also ignore the setting. This means the screen_info only has to be
provided when either vgacon or EFI are enabled now.

To limit the amount of surprises on Arm, change the Kconfig default
to the previously used 80x30 setting instead of the usual 80x25.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/kernel/atags_parse.c    | 2 +-
 arch/arm/kernel/setup.c          | 3 +--
 drivers/video/console/Kconfig    | 5 +++--
 drivers/video/console/dummycon.c | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/kernel/atags_parse.c b/arch/arm/kernel/atags_parse.c
index 33f6eb5213a5a..4c815da3b77b0 100644
--- a/arch/arm/kernel/atags_parse.c
+++ b/arch/arm/kernel/atags_parse.c
@@ -69,7 +69,7 @@ static int __init parse_tag_mem32(const struct tag *tag)
 
 __tagtable(ATAG_MEM, parse_tag_mem32);
 
-#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
+#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_VGA_CONSOLE)
 static int __init parse_tag_videotext(const struct tag *tag)
 {
 	screen_info.orig_x            = tag->u.videotext.x;
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index c66b560562b30..40326a35a179b 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -928,8 +928,7 @@ static void __init request_standard_resources(const struct machine_desc *mdesc)
 		request_resource(&ioport_resource, &lp2);
 }
 
-#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE) || \
-    defined(CONFIG_EFI)
+#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_EFI)
 struct screen_info screen_info = {
  .orig_video_lines	= 30,
  .orig_video_cols	= 80,
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 47c498defc211..a3e4e9a6bf79d 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -52,7 +52,7 @@ config DUMMY_CONSOLE
 
 config DUMMY_CONSOLE_COLUMNS
 	int "Initial number of console screen columns"
-	depends on DUMMY_CONSOLE && !ARM
+	depends on DUMMY_CONSOLE && !ARCH_FOOTBRIDGE
 	default 160 if PARISC
 	default 80
 	help
@@ -62,8 +62,9 @@ config DUMMY_CONSOLE_COLUMNS
 
 config DUMMY_CONSOLE_ROWS
 	int "Initial number of console screen rows"
-	depends on DUMMY_CONSOLE && !ARM
+	depends on DUMMY_CONSOLE && !ARCH_FOOTBRIDGE
 	default 64 if PARISC
+	default 30 if ARM
 	default 25
 	help
 	  On PA-RISC, the default value is 64, which should fit a 1280x1024
diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c
index f1711b2f9ff05..70549fecee12c 100644
--- a/drivers/video/console/dummycon.c
+++ b/drivers/video/console/dummycon.c
@@ -18,7 +18,7 @@
  *  Dummy console driver
  */
 
-#if defined(__arm__)
+#if defined(CONFIG_ARCH_FOOTBRIDGE) && defined(CONFIG_VGA_CONSOLE)
 #define DUMMY_COLUMNS	screen_info.orig_video_cols
 #define DUMMY_ROWS	screen_info.orig_video_lines
 #else
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
  2023-07-07  9:52 ` [PATCH 2/4] vgacon: rework screen_info #ifdef checks Arnd Bergmann
  2023-07-07  9:52 ` [PATCH 3/4] dummycon: limit Arm console size hack to footbridge Arnd Bergmann
@ 2023-07-07  9:52 ` Arnd Bergmann
  2023-07-07 13:42   ` Javier Martinez Canillas
                     ` (4 more replies)
  2023-07-07 13:17 ` [PATCH 1/4] vgacon: rework Kconfig dependencies Javier Martinez Canillas
                   ` (3 subsequent siblings)
  6 siblings, 5 replies; 22+ messages in thread
From: Arnd Bergmann @ 2023-07-07  9:52 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Guo Ren, Brian Cain, Dinh Nguyen, Rich Felker,
	John Paul Adrian Glaubitz, David S. Miller, Chris Zankel,
	Max Filippov, Masahiro Yamada, linux-csky, linux-hexagon,
	linux-sh, sparclinux

From: Arnd Bergmann <arnd@arndb.de>

A number of architectures either kept the screen_info definition for
historical purposes as it used to be required by the generic VT code, or
they copied it from another architecture in order to build the VGA
console driver in an allmodconfig build.

Now that vgacon no longer builds on these architectures, remove the
stale definitions.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/csky/kernel/setup.c          | 12 ------------
 arch/hexagon/kernel/Makefile      |  2 --
 arch/hexagon/kernel/screen_info.c |  3 ---
 arch/nios2/kernel/setup.c         |  5 -----
 arch/sh/kernel/setup.c            |  5 -----
 arch/sparc/kernel/setup_32.c      | 13 -------------
 arch/sparc/kernel/setup_64.c      | 13 -------------
 arch/xtensa/kernel/setup.c        | 12 ------------
 8 files changed, 65 deletions(-)
 delete mode 100644 arch/hexagon/kernel/screen_info.c

diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c
index 106fbf0b6f3b4..51012e90780d6 100644
--- a/arch/csky/kernel/setup.c
+++ b/arch/csky/kernel/setup.c
@@ -8,22 +8,10 @@
 #include <linux/of_fdt.h>
 #include <linux/start_kernel.h>
 #include <linux/dma-map-ops.h>
-#include <linux/screen_info.h>
 #include <asm/sections.h>
 #include <asm/mmu_context.h>
 #include <asm/pgalloc.h>
 
-#ifdef CONFIG_DUMMY_CONSOLE
-struct screen_info screen_info = {
-	.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
-};
-#endif
-
 static void __init csky_memblock_init(void)
 {
 	unsigned long lowmem_size = PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
diff --git a/arch/hexagon/kernel/Makefile b/arch/hexagon/kernel/Makefile
index e73cb321630ec..3fdf937eb572e 100644
--- a/arch/hexagon/kernel/Makefile
+++ b/arch/hexagon/kernel/Makefile
@@ -17,5 +17,3 @@ obj-y += vm_vectors.o
 obj-$(CONFIG_HAS_DMA) += dma.o
 
 obj-$(CONFIG_STACKTRACE) += stacktrace.o
-
-obj-$(CONFIG_VGA_CONSOLE) += screen_info.o
diff --git a/arch/hexagon/kernel/screen_info.c b/arch/hexagon/kernel/screen_info.c
deleted file mode 100644
index 1e1ceb18bafe7..0000000000000
--- a/arch/hexagon/kernel/screen_info.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <linux/screen_info.h>
-
-struct screen_info screen_info;
diff --git a/arch/nios2/kernel/setup.c b/arch/nios2/kernel/setup.c
index 8582ed9658447..da122a5fa43b2 100644
--- a/arch/nios2/kernel/setup.c
+++ b/arch/nios2/kernel/setup.c
@@ -19,7 +19,6 @@
 #include <linux/memblock.h>
 #include <linux/initrd.h>
 #include <linux/of_fdt.h>
-#include <linux/screen_info.h>
 
 #include <asm/mmu_context.h>
 #include <asm/sections.h>
@@ -36,10 +35,6 @@ static struct pt_regs fake_regs = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 					0, 0, 0, 0, 0, 0,
 					0};
 
-#ifdef CONFIG_VT
-struct screen_info screen_info;
-#endif
-
 /* Copy a short hook instruction sequence to the exception address */
 static inline void copy_exception_handler(unsigned int addr)
 {
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index b3da2757faaf3..3d80515298d26 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -7,7 +7,6 @@
  *  Copyright (C) 1999  Niibe Yutaka
  *  Copyright (C) 2002 - 2010 Paul Mundt
  */
-#include <linux/screen_info.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
 #include <linux/initrd.h>
@@ -69,10 +68,6 @@ EXPORT_SYMBOL(cpu_data);
 struct sh_machine_vector sh_mv = { .mv_name = "generic", };
 EXPORT_SYMBOL(sh_mv);
 
-#ifdef CONFIG_VT
-struct screen_info screen_info;
-#endif
-
 extern int root_mountflags;
 
 #define RAMDISK_IMAGE_START_MASK	0x07FF
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
index 34ef7febf0d56..e3b72a7b46d37 100644
--- a/arch/sparc/kernel/setup_32.c
+++ b/arch/sparc/kernel/setup_32.c
@@ -17,7 +17,6 @@
 #include <linux/initrd.h>
 #include <asm/smp.h>
 #include <linux/user.h>
-#include <linux/screen_info.h>
 #include <linux/delay.h>
 #include <linux/fs.h>
 #include <linux/seq_file.h>
@@ -51,18 +50,6 @@
 
 #include "kernel.h"
 
-struct screen_info screen_info = {
-	0, 0,			/* orig-x, orig-y */
-	0,			/* unused */
-	0,			/* orig-video-page */
-	0,			/* orig-video-mode */
-	128,			/* orig-video-cols */
-	0,0,0,			/* ega_ax, ega_bx, ega_cx */
-	54,			/* orig-video-lines */
-	0,                      /* orig-video-isVGA */
-	16                      /* orig-video-points */
-};
-
 /* Typing sync at the prom prompt calls the function pointed to by
  * romvec->pv_synchook which I set to the following function.
  * This should sync all filesystems and return, for now it just
diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
index 6546ca9d4d3f1..6a4797dec34b4 100644
--- a/arch/sparc/kernel/setup_64.c
+++ b/arch/sparc/kernel/setup_64.c
@@ -15,7 +15,6 @@
 #include <linux/ptrace.h>
 #include <asm/smp.h>
 #include <linux/user.h>
-#include <linux/screen_info.h>
 #include <linux/delay.h>
 #include <linux/fs.h>
 #include <linux/seq_file.h>
@@ -68,18 +67,6 @@
 DEFINE_SPINLOCK(ns87303_lock);
 EXPORT_SYMBOL(ns87303_lock);
 
-struct screen_info screen_info = {
-	0, 0,			/* orig-x, orig-y */
-	0,			/* unused */
-	0,			/* orig-video-page */
-	0,			/* orig-video-mode */
-	128,			/* orig-video-cols */
-	0, 0, 0,		/* unused, ega_bx, unused */
-	54,			/* orig-video-lines */
-	0,                      /* orig-video-isVGA */
-	16                      /* orig-video-points */
-};
-
 static void
 prom_console_write(struct console *con, const char *s, unsigned int n)
 {
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index aba3ff4e60d85..3f22d0537818d 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -19,7 +19,6 @@
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/proc_fs.h>
-#include <linux/screen_info.h>
 #include <linux/kernel.h>
 #include <linux/percpu.h>
 #include <linux/reboot.h>
@@ -49,17 +48,6 @@
 #include <asm/timex.h>
 #include <asm/traps.h>
 
-#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
-struct screen_info screen_info = {
-	.orig_x = 0,
-	.orig_y = 24,
-	.orig_video_cols = 80,
-	.orig_video_lines = 24,
-	.orig_video_isVGA = 1,
-	.orig_video_points = 16,
-};
-#endif
-
 #ifdef CONFIG_BLK_DEV_INITRD
 extern unsigned long initrd_start;
 extern unsigned long initrd_end;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/4] dummycon: limit Arm console size hack to footbridge
  2023-07-07  9:52 ` [PATCH 3/4] dummycon: limit Arm console size hack to footbridge Arnd Bergmann
@ 2023-07-07 11:33   ` Linus Walleij
  2023-07-07 14:27     ` Arnd Bergmann
  2023-07-07 13:41   ` Javier Martinez Canillas
  1 sibling, 1 reply; 22+ messages in thread
From: Linus Walleij @ 2023-07-07 11:33 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Thomas Zimmermann, javierm, linux-fbdev, linux-kernel,
	Russell King, dri-devel, Ard Biesheuvel, Helge Deller,
	Greg Kroah-Hartman, Arnd Bergmann, Russell King (Oracle),
	linux-arm-kernel

On Fri, Jul 7, 2023 at 11:56 AM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The dummycon default console size used to be determined by architecture,
> but now this is a Kconfig setting on everything except ARM. Tracing this
> back in the historic git trees, this was used to match the size of VGA
> console or VGA framebuffer on early machines, but nowadays that code is
> no longer used, except probably on the old footbridge/netwinder since
> that is the only one that supports vgacon.
>
> On machines with a framebuffer, booting with DT so far results in always
> using the hardcoded 80x30 size in dummycon, while on ATAGS the setting
> can come from a bootloader specific override. Both seem to be worse
> choices than the Kconfig setting, since the actual text size for fbcon
> also depends on the selected font.
>
> Make this work the same way as everywhere else and use the normal
> Kconfig setting, except for the footbridge with vgacon, which keeps
> using the traditional code. If vgacon is disabled, footbridge can
> also ignore the setting. This means the screen_info only has to be
> provided when either vgacon or EFI are enabled now.
>
> To limit the amount of surprises on Arm, change the Kconfig default
> to the previously used 80x30 setting instead of the usual 80x25.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Tested this before and after patch and it looks the same on the NetWinder.
Tested-by: Linus Walleij <linus.walleij@linaro.org>

The legacy in the cyber2000 FB driver supports pseudocolor which
makes it a bit hard to rewrite into a simple DRM driver, which is something
I could otherwise look into, it's not a very big or complex driver
after all.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] vgacon: rework Kconfig dependencies
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
                   ` (2 preceding siblings ...)
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
@ 2023-07-07 13:17 ` Javier Martinez Canillas
  2023-07-07 15:07 ` Thomas Zimmermann
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 22+ messages in thread
From: Javier Martinez Canillas @ 2023-07-07 13:17 UTC (permalink / raw)
  To: Arnd Bergmann, Thomas Zimmermann
  Cc: linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, linux-riscv,
	linux-csky

Arnd Bergmann <arnd@kernel.org> writes:

Hello Arnd,

> From: Arnd Bergmann <arnd@arndb.de>
>
> The list of dependencies here is phrased as an opt-out, but this is missing
> a lot of architectures that don't actually support VGA consoles, and some
> of the entries are stale:
>
>  - powerpc used to support VGA consoles in the old arch/ppc codebase, but
>    the merged arch/powerpc never did
>
>  - arm lists footbridge, integrator and netwinder, but netwinder is actually
>    part of footbridge, and integrator does not appear to have an actual
>    VGA hardware, or list it in its ATAG or DT.
>
>  - mips has a few platforms (jazz, sibyte, and sni) that initialize
>    screen_info, on everything else the console is selected but cannot
>    actually work.
>
>  - csky, hexgagon, loongarch, nios2, riscv and xtensa are not listed
>    in the opt-out table and declare a screen_info to allow building
>    vga_con, but this cannot work because the console is never selected.
>
> Replace this with an opt-in table that lists only the platforms that
> remain. This is effectively x86, plus a couple of historic workstation
> and server machines that reused parts of the x86 system architecture.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Both our explanation and changes look good to me.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/4] vgacon: rework screen_info #ifdef checks
  2023-07-07  9:52 ` [PATCH 2/4] vgacon: rework screen_info #ifdef checks Arnd Bergmann
@ 2023-07-07 13:40   ` Javier Martinez Canillas
  2023-07-07 14:32     ` Arnd Bergmann
  2023-07-08 14:11   ` Thomas Bogendoerfer
  1 sibling, 1 reply; 22+ messages in thread
From: Javier Martinez Canillas @ 2023-07-07 13:40 UTC (permalink / raw)
  To: Arnd Bergmann, Thomas Zimmermann
  Cc: linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Richard Henderson, Ivan Kokshaysky, Matt Turner, Huacai Chen,
	WANG Xuerui, Thomas Bogendoerfer, Michael Ellerman,
	Nicholas Piggin, Christophe Leroy, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, linux-alpha, linux-ia64, loongarch, linux-mips,
	linuxppc-dev, linux-riscv

Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.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.
>
> On powerpc, there is no support for vgacon, but there is support for
> vga16fb. 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.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

[...]

> diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
> index 5a55ac82c13a4..0c09ff7fde46b 100644
> --- a/arch/ia64/kernel/setup.c
> +++ b/arch/ia64/kernel/setup.c
> @@ -86,9 +86,11 @@ 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;

I think that only screen_info should be guarded by both symbols ?

>  unsigned long vga_console_iobase;

It seems this variable was never used since it was introduced by commit
66b7f8a30437 ("[IA64-SGI] pcdp: add PCDP pci interface support") ?

>  unsigned long vga_console_membase;

And this is only used by mdacon (not supported by ia64), vgacon and
vga16fb (not supported by ia64 either).

So this could just be guarded just by CONFIG_VGA_CONSOLE for ia64 ?

The rest of the patch looks good to me.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/4] dummycon: limit Arm console size hack to footbridge
  2023-07-07  9:52 ` [PATCH 3/4] dummycon: limit Arm console size hack to footbridge Arnd Bergmann
  2023-07-07 11:33   ` Linus Walleij
@ 2023-07-07 13:41   ` Javier Martinez Canillas
  1 sibling, 0 replies; 22+ messages in thread
From: Javier Martinez Canillas @ 2023-07-07 13:41 UTC (permalink / raw)
  To: Arnd Bergmann, Thomas Zimmermann
  Cc: linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Linus Walleij, Russell King (Oracle),
	linux-arm-kernel

Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> The dummycon default console size used to be determined by architecture,
> but now this is a Kconfig setting on everything except ARM. Tracing this
> back in the historic git trees, this was used to match the size of VGA
> console or VGA framebuffer on early machines, but nowadays that code is
> no longer used, except probably on the old footbridge/netwinder since
> that is the only one that supports vgacon.
>
> On machines with a framebuffer, booting with DT so far results in always
> using the hardcoded 80x30 size in dummycon, while on ATAGS the setting
> can come from a bootloader specific override. Both seem to be worse
> choices than the Kconfig setting, since the actual text size for fbcon
> also depends on the selected font.
>
> Make this work the same way as everywhere else and use the normal
> Kconfig setting, except for the footbridge with vgacon, which keeps
> using the traditional code. If vgacon is disabled, footbridge can
> also ignore the setting. This means the screen_info only has to be
> provided when either vgacon or EFI are enabled now.
>
> To limit the amount of surprises on Arm, change the Kconfig default
> to the previously used 80x30 setting instead of the usual 80x25.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
@ 2023-07-07 13:42   ` Javier Martinez Canillas
  2023-07-10  3:38   ` Dinh Nguyen
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 22+ messages in thread
From: Javier Martinez Canillas @ 2023-07-07 13:42 UTC (permalink / raw)
  To: Arnd Bergmann, Thomas Zimmermann
  Cc: linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Guo Ren, Brian Cain, Dinh Nguyen, Rich Felker,
	John Paul Adrian Glaubitz, David S. Miller, Chris Zankel,
	Max Filippov, Masahiro Yamada, linux-csky, linux-hexagon,
	linux-sh, sparclinux

Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> A number of architectures either kept the screen_info definition for
> historical purposes as it used to be required by the generic VT code, or
> they copied it from another architecture in order to build the VGA
> console driver in an allmodconfig build.
>
> Now that vgacon no longer builds on these architectures, remove the
> stale definitions.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Nice cleanup!

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/4] dummycon: limit Arm console size hack to footbridge
  2023-07-07 11:33   ` Linus Walleij
@ 2023-07-07 14:27     ` Arnd Bergmann
  2023-07-16 21:22       ` Linus Walleij
  0 siblings, 1 reply; 22+ messages in thread
From: Arnd Bergmann @ 2023-07-07 14:27 UTC (permalink / raw)
  To: Linus Walleij, Arnd Bergmann
  Cc: Thomas Zimmermann, Javier Martinez Canillas, linux-fbdev,
	linux-kernel, Russell King, dri-devel, Ard Biesheuvel,
	Helge Deller, Greg Kroah-Hartman, Russell King, linux-arm-kernel

On Fri, Jul 7, 2023, at 13:33, Linus Walleij wrote:
> On Fri, Jul 7, 2023 at 11:56 AM Arnd Bergmann <arnd@kernel.org> wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> Tested this before and after patch and it looks the same on the NetWinder.
> Tested-by: Linus Walleij <linus.walleij@linaro.org>

Great, thanks for testing!

> The legacy in the cyber2000 FB driver supports pseudocolor which
> makes it a bit hard to rewrite into a simple DRM driver, which is something
> I could otherwise look into, it's not a very big or complex driver
> after all.

Not sure if that's worth it, my feeling is that we are stuck with
fbdev on a lot of other workstations of the era, so unless someone
puts significant energy into converting all the others as well, there
is little benefit of changing this one. It would be a little different
on platforms that actually run a regular Debian distro kernel that
is shared with modern machines.

Since you have already spent the time to build and test a kernel with
this patch, can you do one more test here and check the text size
reported in the atags on this machine and the actual text sizes you
get from both vgacon and cyber2000fb?

     Arnd

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/4] vgacon: rework screen_info #ifdef checks
  2023-07-07 13:40   ` Javier Martinez Canillas
@ 2023-07-07 14:32     ` Arnd Bergmann
  2023-07-07 15:27       ` Javier Martinez Canillas
  0 siblings, 1 reply; 22+ messages in thread
From: Arnd Bergmann @ 2023-07-07 14:32 UTC (permalink / raw)
  To: Javier Martinez Canillas, Arnd Bergmann, Thomas Zimmermann
  Cc: linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman,
	Richard Henderson, Ivan Kokshaysky, Matt Turner, Huacai Chen,
	WANG Xuerui, Thomas Bogendoerfer, Michael Ellerman,
	Nicholas Piggin, Christophe Leroy, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, linux-alpha, linux-ia64, loongarch, linux-mips,
	linuxppc-dev, linux-riscv

On Fri, Jul 7, 2023, at 15:40, Javier Martinez Canillas wrote:
>> diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
>> index 5a55ac82c13a4..0c09ff7fde46b 100644
>> --- a/arch/ia64/kernel/setup.c
>> +++ b/arch/ia64/kernel/setup.c
>> @@ -86,9 +86,11 @@ 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;
>
> I think that only screen_info should be guarded by both symbols ?
>
>>  unsigned long vga_console_iobase;
>
> It seems this variable was never used since it was introduced by commit
> 66b7f8a30437 ("[IA64-SGI] pcdp: add PCDP pci interface support") ?
>
>>  unsigned long vga_console_membase;
>
> And this is only used by mdacon (not supported by ia64), vgacon and
> vga16fb (not supported by ia64 either).
>
> So this could just be guarded just by CONFIG_VGA_CONSOLE for ia64 ?

Right, I though about doing this more accurately, but in the end
went for the simplest change rather than spending much more time
trying to clean up the unused variables etc.

Let me know if you'd prefer me to respin this part, otherwise
I'd call the ia64 bit good enough for the purpose of the series.

     Arnd

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] vgacon: rework Kconfig dependencies
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
                   ` (3 preceding siblings ...)
  2023-07-07 13:17 ` [PATCH 1/4] vgacon: rework Kconfig dependencies Javier Martinez Canillas
@ 2023-07-07 15:07 ` Thomas Zimmermann
  2023-08-01 16:55 ` Thomas Zimmermann
  2023-08-01 17:05 ` Russell King (Oracle)
  6 siblings, 0 replies; 22+ messages in thread
From: Thomas Zimmermann @ 2023-07-07 15:07 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, linux-riscv,
	linux-csky


[-- Attachment #1.1: Type: text/plain, Size: 2543 bytes --]

Hi,

for the whole series:

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

Best regards
Thomas

Am 07.07.23 um 11:52 schrieb Arnd Bergmann:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The list of dependencies here is phrased as an opt-out, but this is missing
> a lot of architectures that don't actually support VGA consoles, and some
> of the entries are stale:
> 
>   - powerpc used to support VGA consoles in the old arch/ppc codebase, but
>     the merged arch/powerpc never did
> 
>   - arm lists footbridge, integrator and netwinder, but netwinder is actually
>     part of footbridge, and integrator does not appear to have an actual
>     VGA hardware, or list it in its ATAG or DT.
> 
>   - mips has a few platforms (jazz, sibyte, and sni) that initialize
>     screen_info, on everything else the console is selected but cannot
>     actually work.
> 
>   - csky, hexgagon, loongarch, nios2, riscv and xtensa are not listed
>     in the opt-out table and declare a screen_info to allow building
>     vga_con, but this cannot work because the console is never selected.
> 
> Replace this with an opt-in table that lists only the platforms that
> remain. This is effectively x86, plus a couple of historic workstation
> and server machines that reused parts of the x86 system architecture.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>   drivers/video/console/Kconfig | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
> index a2a88d42edf0c..47c498defc211 100644
> --- a/drivers/video/console/Kconfig
> +++ b/drivers/video/console/Kconfig
> @@ -7,9 +7,9 @@ menu "Console display driver support"
>   
>   config VGA_CONSOLE
>   	bool "VGA text console" if EXPERT || !X86
> -	depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC &&  !SUPERH && \
> -		(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
> -		!ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !S390 && !UML
> +	depends on ALPHA || IA64 || X86 || \
> +		(ARM && ARCH_FOOTBRIDGE) || \
> +		(MIPS && (MIPS_MALTA || SIBYTE_BCM112X || SIBYTE_SB1250 || SIBYTE_BCM1x80 || SNI_RM))
>   	select APERTURE_HELPERS if (DRM || FB || VFIO_PCI_CORE)
>   	default y
>   	help

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/4] vgacon: rework screen_info #ifdef checks
  2023-07-07 14:32     ` Arnd Bergmann
@ 2023-07-07 15:27       ` Javier Martinez Canillas
  0 siblings, 0 replies; 22+ messages in thread
From: Javier Martinez Canillas @ 2023-07-07 15:27 UTC (permalink / raw)
  To: Arnd Bergmann, Arnd Bergmann, Thomas Zimmermann
  Cc: linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman,
	Richard Henderson, Ivan Kokshaysky, Matt Turner, Huacai Chen,
	WANG Xuerui, Thomas Bogendoerfer, Michael Ellerman,
	Nicholas Piggin, Christophe Leroy, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, linux-alpha, linux-ia64, loongarch, linux-mips,
	linuxppc-dev, linux-riscv

"Arnd Bergmann" <arnd@arndb.de> writes:

> On Fri, Jul 7, 2023, at 15:40, Javier Martinez Canillas wrote:

[...]

>> And this is only used by mdacon (not supported by ia64), vgacon and
>> vga16fb (not supported by ia64 either).
>>
>> So this could just be guarded just by CONFIG_VGA_CONSOLE for ia64 ?
>
> Right, I though about doing this more accurately, but in the end
> went for the simplest change rather than spending much more time
> trying to clean up the unused variables etc.
>
> Let me know if you'd prefer me to respin this part, otherwise
> I'd call the ia64 bit good enough for the purpose of the series.
>

No need to re-spin, agreed that makes sense to keep it simpler.

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/4] vgacon: rework screen_info #ifdef checks
  2023-07-07  9:52 ` [PATCH 2/4] vgacon: rework screen_info #ifdef checks Arnd Bergmann
  2023-07-07 13:40   ` Javier Martinez Canillas
@ 2023-07-08 14:11   ` Thomas Bogendoerfer
  1 sibling, 0 replies; 22+ messages in thread
From: Thomas Bogendoerfer @ 2023-07-08 14:11 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Thomas Zimmermann, javierm, linux-fbdev, linux-kernel,
	Russell King, dri-devel, Ard Biesheuvel, Helge Deller,
	Greg Kroah-Hartman, Arnd Bergmann, Richard Henderson,
	Ivan Kokshaysky, Matt Turner, Huacai Chen, WANG Xuerui,
	Michael Ellerman, Nicholas Piggin, Christophe Leroy,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, linux-alpha,
	linux-ia64, loongarch, linux-mips, linuxppc-dev, linux-riscv

On Fri, Jul 07, 2023 at 11:52:24AM +0200, Arnd Bergmann wrote:
> diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c
> index ee044261eb223..3c14548353e47 100644
> --- a/arch/mips/jazz/setup.c
> +++ b/arch/mips/jazz/setup.c
> @@ -76,7 +76,7 @@ void __init plat_mem_setup(void)
>  
>  	_machine_restart = jazz_machine_restart;
>  
> -#ifdef CONFIG_VT
> +#ifdef CONFIG_VGA_CONSOLE
>  	screen_info = (struct screen_info) {
>  		.orig_video_cols	= 160,
>  		.orig_video_lines	= 64,

that wssn't intended for VGA but for fbdev/g364fb, which doesn't use
it. So removing it is probably the best thing.

Thomas.

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
  2023-07-07 13:42   ` Javier Martinez Canillas
@ 2023-07-10  3:38   ` Dinh Nguyen
  2023-07-10  4:08   ` Max Filippov
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 22+ messages in thread
From: Dinh Nguyen @ 2023-07-10  3:38 UTC (permalink / raw)
  To: Arnd Bergmann, Thomas Zimmermann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Guo Ren, Brian Cain, Rich Felker, John Paul Adrian Glaubitz,
	David S. Miller, Chris Zankel, Max Filippov, Masahiro Yamada,
	linux-csky, linux-hexagon, linux-sh, sparclinux



On 7/7/23 04:52, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> A number of architectures either kept the screen_info definition for
> historical purposes as it used to be required by the generic VT code, or
> they copied it from another architecture in order to build the VGA
> console driver in an allmodconfig build.
> 
> Now that vgacon no longer builds on these architectures, remove the
> stale definitions.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>   arch/csky/kernel/setup.c          | 12 ------------
>   arch/hexagon/kernel/Makefile      |  2 --
>   arch/hexagon/kernel/screen_info.c |  3 ---
>   arch/nios2/kernel/setup.c         |  5 -----

Acked-by: Dinh Nguyen <dinguyen@kernel.org>


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
  2023-07-07 13:42   ` Javier Martinez Canillas
  2023-07-10  3:38   ` Dinh Nguyen
@ 2023-07-10  4:08   ` Max Filippov
  2023-07-12 14:46   ` Palmer Dabbelt
  2023-07-13  0:33   ` Guo Ren
  4 siblings, 0 replies; 22+ messages in thread
From: Max Filippov @ 2023-07-10  4:08 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Thomas Zimmermann, javierm, linux-fbdev, linux-kernel,
	Russell King, dri-devel, Ard Biesheuvel, Helge Deller,
	Greg Kroah-Hartman, Arnd Bergmann, Guo Ren, Brian Cain,
	Dinh Nguyen, Rich Felker, John Paul Adrian Glaubitz,
	David S. Miller, Chris Zankel, Masahiro Yamada, linux-csky,
	linux-hexagon, linux-sh, sparclinux

On Fri, Jul 7, 2023 at 2:56 AM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> A number of architectures either kept the screen_info definition for
> historical purposes as it used to be required by the generic VT code, or
> they copied it from another architecture in order to build the VGA
> console driver in an allmodconfig build.
>
> Now that vgacon no longer builds on these architectures, remove the
> stale definitions.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/csky/kernel/setup.c          | 12 ------------
>  arch/hexagon/kernel/Makefile      |  2 --
>  arch/hexagon/kernel/screen_info.c |  3 ---
>  arch/nios2/kernel/setup.c         |  5 -----
>  arch/sh/kernel/setup.c            |  5 -----
>  arch/sparc/kernel/setup_32.c      | 13 -------------
>  arch/sparc/kernel/setup_64.c      | 13 -------------
>  arch/xtensa/kernel/setup.c        | 12 ------------

For xtensa:
Acked-by: Max Filippov <jcmvbkbc@gmail.com>

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
                     ` (2 preceding siblings ...)
  2023-07-10  4:08   ` Max Filippov
@ 2023-07-12 14:46   ` Palmer Dabbelt
  2023-07-13  0:33   ` Guo Ren
  4 siblings, 0 replies; 22+ messages in thread
From: Palmer Dabbelt @ 2023-07-12 14:46 UTC (permalink / raw)
  To: arnd
  Cc: tzimmermann, javierm, linux-fbdev, linux-kernel, linux,
	dri-devel, Ard Biesheuvel, deller, Greg KH, Arnd Bergmann,
	guoren, bcain, dinguyen, dalias, glaubitz, davem, chris,
	jcmvbkbc, masahiroy, linux-csky, linux-hexagon, linux-sh,
	sparclinux

On Fri, 07 Jul 2023 02:52:26 PDT (-0700), arnd@kernel.org wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> A number of architectures either kept the screen_info definition for
> historical purposes as it used to be required by the generic VT code, or
> they copied it from another architecture in order to build the VGA
> console driver in an allmodconfig build.
>
> Now that vgacon no longer builds on these architectures, remove the
> stale definitions.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/csky/kernel/setup.c          | 12 ------------
>  arch/hexagon/kernel/Makefile      |  2 --
>  arch/hexagon/kernel/screen_info.c |  3 ---
>  arch/nios2/kernel/setup.c         |  5 -----
>  arch/sh/kernel/setup.c            |  5 -----
>  arch/sparc/kernel/setup_32.c      | 13 -------------
>  arch/sparc/kernel/setup_64.c      | 13 -------------
>  arch/xtensa/kernel/setup.c        | 12 ------------
>  8 files changed, 65 deletions(-)
>  delete mode 100644 arch/hexagon/kernel/screen_info.c
>
> diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c
> index 106fbf0b6f3b4..51012e90780d6 100644
> --- a/arch/csky/kernel/setup.c
> +++ b/arch/csky/kernel/setup.c
> @@ -8,22 +8,10 @@
>  #include <linux/of_fdt.h>
>  #include <linux/start_kernel.h>
>  #include <linux/dma-map-ops.h>
> -#include <linux/screen_info.h>
>  #include <asm/sections.h>
>  #include <asm/mmu_context.h>
>  #include <asm/pgalloc.h>
>
> -#ifdef CONFIG_DUMMY_CONSOLE
> -struct screen_info screen_info = {
> -	.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
> -};
> -#endif
> -
>  static void __init csky_memblock_init(void)
>  {
>  	unsigned long lowmem_size = PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
> diff --git a/arch/hexagon/kernel/Makefile b/arch/hexagon/kernel/Makefile
> index e73cb321630ec..3fdf937eb572e 100644
> --- a/arch/hexagon/kernel/Makefile
> +++ b/arch/hexagon/kernel/Makefile
> @@ -17,5 +17,3 @@ obj-y += vm_vectors.o
>  obj-$(CONFIG_HAS_DMA) += dma.o
>
>  obj-$(CONFIG_STACKTRACE) += stacktrace.o
> -
> -obj-$(CONFIG_VGA_CONSOLE) += screen_info.o
> diff --git a/arch/hexagon/kernel/screen_info.c b/arch/hexagon/kernel/screen_info.c
> deleted file mode 100644
> index 1e1ceb18bafe7..0000000000000
> --- a/arch/hexagon/kernel/screen_info.c
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -#include <linux/screen_info.h>
> -
> -struct screen_info screen_info;
> diff --git a/arch/nios2/kernel/setup.c b/arch/nios2/kernel/setup.c
> index 8582ed9658447..da122a5fa43b2 100644
> --- a/arch/nios2/kernel/setup.c
> +++ b/arch/nios2/kernel/setup.c
> @@ -19,7 +19,6 @@
>  #include <linux/memblock.h>
>  #include <linux/initrd.h>
>  #include <linux/of_fdt.h>
> -#include <linux/screen_info.h>
>
>  #include <asm/mmu_context.h>
>  #include <asm/sections.h>
> @@ -36,10 +35,6 @@ static struct pt_regs fake_regs = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
>  					0, 0, 0, 0, 0, 0,
>  					0};
>
> -#ifdef CONFIG_VT
> -struct screen_info screen_info;
> -#endif
> -
>  /* Copy a short hook instruction sequence to the exception address */
>  static inline void copy_exception_handler(unsigned int addr)
>  {
> diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
> index b3da2757faaf3..3d80515298d26 100644
> --- a/arch/sh/kernel/setup.c
> +++ b/arch/sh/kernel/setup.c
> @@ -7,7 +7,6 @@
>   *  Copyright (C) 1999  Niibe Yutaka
>   *  Copyright (C) 2002 - 2010 Paul Mundt
>   */
> -#include <linux/screen_info.h>
>  #include <linux/ioport.h>
>  #include <linux/init.h>
>  #include <linux/initrd.h>
> @@ -69,10 +68,6 @@ EXPORT_SYMBOL(cpu_data);
>  struct sh_machine_vector sh_mv = { .mv_name = "generic", };
>  EXPORT_SYMBOL(sh_mv);
>
> -#ifdef CONFIG_VT
> -struct screen_info screen_info;
> -#endif
> -
>  extern int root_mountflags;
>
>  #define RAMDISK_IMAGE_START_MASK	0x07FF
> diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
> index 34ef7febf0d56..e3b72a7b46d37 100644
> --- a/arch/sparc/kernel/setup_32.c
> +++ b/arch/sparc/kernel/setup_32.c
> @@ -17,7 +17,6 @@
>  #include <linux/initrd.h>
>  #include <asm/smp.h>
>  #include <linux/user.h>
> -#include <linux/screen_info.h>
>  #include <linux/delay.h>
>  #include <linux/fs.h>
>  #include <linux/seq_file.h>
> @@ -51,18 +50,6 @@
>
>  #include "kernel.h"
>
> -struct screen_info screen_info = {
> -	0, 0,			/* orig-x, orig-y */
> -	0,			/* unused */
> -	0,			/* orig-video-page */
> -	0,			/* orig-video-mode */
> -	128,			/* orig-video-cols */
> -	0,0,0,			/* ega_ax, ega_bx, ega_cx */
> -	54,			/* orig-video-lines */
> -	0,                      /* orig-video-isVGA */
> -	16                      /* orig-video-points */
> -};
> -
>  /* Typing sync at the prom prompt calls the function pointed to by
>   * romvec->pv_synchook which I set to the following function.
>   * This should sync all filesystems and return, for now it just
> diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
> index 6546ca9d4d3f1..6a4797dec34b4 100644
> --- a/arch/sparc/kernel/setup_64.c
> +++ b/arch/sparc/kernel/setup_64.c
> @@ -15,7 +15,6 @@
>  #include <linux/ptrace.h>
>  #include <asm/smp.h>
>  #include <linux/user.h>
> -#include <linux/screen_info.h>
>  #include <linux/delay.h>
>  #include <linux/fs.h>
>  #include <linux/seq_file.h>
> @@ -68,18 +67,6 @@
>  DEFINE_SPINLOCK(ns87303_lock);
>  EXPORT_SYMBOL(ns87303_lock);
>
> -struct screen_info screen_info = {
> -	0, 0,			/* orig-x, orig-y */
> -	0,			/* unused */
> -	0,			/* orig-video-page */
> -	0,			/* orig-video-mode */
> -	128,			/* orig-video-cols */
> -	0, 0, 0,		/* unused, ega_bx, unused */
> -	54,			/* orig-video-lines */
> -	0,                      /* orig-video-isVGA */
> -	16                      /* orig-video-points */
> -};
> -
>  static void
>  prom_console_write(struct console *con, const char *s, unsigned int n)
>  {
> diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
> index aba3ff4e60d85..3f22d0537818d 100644
> --- a/arch/xtensa/kernel/setup.c
> +++ b/arch/xtensa/kernel/setup.c
> @@ -19,7 +19,6 @@
>  #include <linux/init.h>
>  #include <linux/mm.h>
>  #include <linux/proc_fs.h>
> -#include <linux/screen_info.h>
>  #include <linux/kernel.h>
>  #include <linux/percpu.h>
>  #include <linux/reboot.h>
> @@ -49,17 +48,6 @@
>  #include <asm/timex.h>
>  #include <asm/traps.h>
>
> -#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
> -struct screen_info screen_info = {
> -	.orig_x = 0,
> -	.orig_y = 24,
> -	.orig_video_cols = 80,
> -	.orig_video_lines = 24,
> -	.orig_video_isVGA = 1,
> -	.orig_video_points = 16,
> -};
> -#endif
> -
>  #ifdef CONFIG_BLK_DEV_INITRD
>  extern unsigned long initrd_start;
>  extern unsigned long initrd_end;

Acked-by: Palmer Dabbelt <palmer@rivosinc.com>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions
  2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
                     ` (3 preceding siblings ...)
  2023-07-12 14:46   ` Palmer Dabbelt
@ 2023-07-13  0:33   ` Guo Ren
  4 siblings, 0 replies; 22+ messages in thread
From: Guo Ren @ 2023-07-13  0:33 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Thomas Zimmermann, javierm, linux-fbdev, linux-kernel,
	Russell King, dri-devel, Ard Biesheuvel, Helge Deller,
	Greg Kroah-Hartman, Arnd Bergmann, Brian Cain, Dinh Nguyen,
	Rich Felker, John Paul Adrian Glaubitz, David S. Miller,
	Chris Zankel, Max Filippov, Masahiro Yamada, linux-csky,
	linux-hexagon, linux-sh, sparclinux

csky:
Acked-by: Guo Ren <guoren@kernel.org>

On Fri, Jul 7, 2023 at 5:56 AM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> A number of architectures either kept the screen_info definition for
> historical purposes as it used to be required by the generic VT code, or
> they copied it from another architecture in order to build the VGA
> console driver in an allmodconfig build.
>
> Now that vgacon no longer builds on these architectures, remove the
> stale definitions.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/csky/kernel/setup.c          | 12 ------------
>  arch/hexagon/kernel/Makefile      |  2 --
>  arch/hexagon/kernel/screen_info.c |  3 ---
>  arch/nios2/kernel/setup.c         |  5 -----
>  arch/sh/kernel/setup.c            |  5 -----
>  arch/sparc/kernel/setup_32.c      | 13 -------------
>  arch/sparc/kernel/setup_64.c      | 13 -------------
>  arch/xtensa/kernel/setup.c        | 12 ------------
>  8 files changed, 65 deletions(-)
>  delete mode 100644 arch/hexagon/kernel/screen_info.c
>
> diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c
> index 106fbf0b6f3b4..51012e90780d6 100644
> --- a/arch/csky/kernel/setup.c
> +++ b/arch/csky/kernel/setup.c
> @@ -8,22 +8,10 @@
>  #include <linux/of_fdt.h>
>  #include <linux/start_kernel.h>
>  #include <linux/dma-map-ops.h>
> -#include <linux/screen_info.h>
>  #include <asm/sections.h>
>  #include <asm/mmu_context.h>
>  #include <asm/pgalloc.h>
>
> -#ifdef CONFIG_DUMMY_CONSOLE
> -struct screen_info screen_info = {
> -       .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
> -};
> -#endif
> -
>  static void __init csky_memblock_init(void)
>  {
>         unsigned long lowmem_size = PFN_DOWN(LOWMEM_LIMIT - PHYS_OFFSET_OFFSET);
> diff --git a/arch/hexagon/kernel/Makefile b/arch/hexagon/kernel/Makefile
> index e73cb321630ec..3fdf937eb572e 100644
> --- a/arch/hexagon/kernel/Makefile
> +++ b/arch/hexagon/kernel/Makefile
> @@ -17,5 +17,3 @@ obj-y += vm_vectors.o
>  obj-$(CONFIG_HAS_DMA) += dma.o
>
>  obj-$(CONFIG_STACKTRACE) += stacktrace.o
> -
> -obj-$(CONFIG_VGA_CONSOLE) += screen_info.o
> diff --git a/arch/hexagon/kernel/screen_info.c b/arch/hexagon/kernel/screen_info.c
> deleted file mode 100644
> index 1e1ceb18bafe7..0000000000000
> --- a/arch/hexagon/kernel/screen_info.c
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -#include <linux/screen_info.h>
> -
> -struct screen_info screen_info;
> diff --git a/arch/nios2/kernel/setup.c b/arch/nios2/kernel/setup.c
> index 8582ed9658447..da122a5fa43b2 100644
> --- a/arch/nios2/kernel/setup.c
> +++ b/arch/nios2/kernel/setup.c
> @@ -19,7 +19,6 @@
>  #include <linux/memblock.h>
>  #include <linux/initrd.h>
>  #include <linux/of_fdt.h>
> -#include <linux/screen_info.h>
>
>  #include <asm/mmu_context.h>
>  #include <asm/sections.h>
> @@ -36,10 +35,6 @@ static struct pt_regs fake_regs = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
>                                         0, 0, 0, 0, 0, 0,
>                                         0};
>
> -#ifdef CONFIG_VT
> -struct screen_info screen_info;
> -#endif
> -
>  /* Copy a short hook instruction sequence to the exception address */
>  static inline void copy_exception_handler(unsigned int addr)
>  {
> diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
> index b3da2757faaf3..3d80515298d26 100644
> --- a/arch/sh/kernel/setup.c
> +++ b/arch/sh/kernel/setup.c
> @@ -7,7 +7,6 @@
>   *  Copyright (C) 1999  Niibe Yutaka
>   *  Copyright (C) 2002 - 2010 Paul Mundt
>   */
> -#include <linux/screen_info.h>
>  #include <linux/ioport.h>
>  #include <linux/init.h>
>  #include <linux/initrd.h>
> @@ -69,10 +68,6 @@ EXPORT_SYMBOL(cpu_data);
>  struct sh_machine_vector sh_mv = { .mv_name = "generic", };
>  EXPORT_SYMBOL(sh_mv);
>
> -#ifdef CONFIG_VT
> -struct screen_info screen_info;
> -#endif
> -
>  extern int root_mountflags;
>
>  #define RAMDISK_IMAGE_START_MASK       0x07FF
> diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
> index 34ef7febf0d56..e3b72a7b46d37 100644
> --- a/arch/sparc/kernel/setup_32.c
> +++ b/arch/sparc/kernel/setup_32.c
> @@ -17,7 +17,6 @@
>  #include <linux/initrd.h>
>  #include <asm/smp.h>
>  #include <linux/user.h>
> -#include <linux/screen_info.h>
>  #include <linux/delay.h>
>  #include <linux/fs.h>
>  #include <linux/seq_file.h>
> @@ -51,18 +50,6 @@
>
>  #include "kernel.h"
>
> -struct screen_info screen_info = {
> -       0, 0,                   /* orig-x, orig-y */
> -       0,                      /* unused */
> -       0,                      /* orig-video-page */
> -       0,                      /* orig-video-mode */
> -       128,                    /* orig-video-cols */
> -       0,0,0,                  /* ega_ax, ega_bx, ega_cx */
> -       54,                     /* orig-video-lines */
> -       0,                      /* orig-video-isVGA */
> -       16                      /* orig-video-points */
> -};
> -
>  /* Typing sync at the prom prompt calls the function pointed to by
>   * romvec->pv_synchook which I set to the following function.
>   * This should sync all filesystems and return, for now it just
> diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
> index 6546ca9d4d3f1..6a4797dec34b4 100644
> --- a/arch/sparc/kernel/setup_64.c
> +++ b/arch/sparc/kernel/setup_64.c
> @@ -15,7 +15,6 @@
>  #include <linux/ptrace.h>
>  #include <asm/smp.h>
>  #include <linux/user.h>
> -#include <linux/screen_info.h>
>  #include <linux/delay.h>
>  #include <linux/fs.h>
>  #include <linux/seq_file.h>
> @@ -68,18 +67,6 @@
>  DEFINE_SPINLOCK(ns87303_lock);
>  EXPORT_SYMBOL(ns87303_lock);
>
> -struct screen_info screen_info = {
> -       0, 0,                   /* orig-x, orig-y */
> -       0,                      /* unused */
> -       0,                      /* orig-video-page */
> -       0,                      /* orig-video-mode */
> -       128,                    /* orig-video-cols */
> -       0, 0, 0,                /* unused, ega_bx, unused */
> -       54,                     /* orig-video-lines */
> -       0,                      /* orig-video-isVGA */
> -       16                      /* orig-video-points */
> -};
> -
>  static void
>  prom_console_write(struct console *con, const char *s, unsigned int n)
>  {
> diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
> index aba3ff4e60d85..3f22d0537818d 100644
> --- a/arch/xtensa/kernel/setup.c
> +++ b/arch/xtensa/kernel/setup.c
> @@ -19,7 +19,6 @@
>  #include <linux/init.h>
>  #include <linux/mm.h>
>  #include <linux/proc_fs.h>
> -#include <linux/screen_info.h>
>  #include <linux/kernel.h>
>  #include <linux/percpu.h>
>  #include <linux/reboot.h>
> @@ -49,17 +48,6 @@
>  #include <asm/timex.h>
>  #include <asm/traps.h>
>
> -#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
> -struct screen_info screen_info = {
> -       .orig_x = 0,
> -       .orig_y = 24,
> -       .orig_video_cols = 80,
> -       .orig_video_lines = 24,
> -       .orig_video_isVGA = 1,
> -       .orig_video_points = 16,
> -};
> -#endif
> -
>  #ifdef CONFIG_BLK_DEV_INITRD
>  extern unsigned long initrd_start;
>  extern unsigned long initrd_end;
> --
> 2.39.2
>


-- 
Best Regards
 Guo Ren

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/4] dummycon: limit Arm console size hack to footbridge
  2023-07-07 14:27     ` Arnd Bergmann
@ 2023-07-16 21:22       ` Linus Walleij
  0 siblings, 0 replies; 22+ messages in thread
From: Linus Walleij @ 2023-07-16 21:22 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Arnd Bergmann, Thomas Zimmermann, Javier Martinez Canillas,
	linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Russell King,
	linux-arm-kernel

On Fri, Jul 7, 2023 at 4:28 PM Arnd Bergmann <arnd@arndb.de> wrote:

> Since you have already spent the time to build and test a kernel with
> this patch, can you do one more test here and check the text size
> reported in the atags on this machine and the actual text sizes you
> get from both vgacon and cyber2000fb?

Heh I tested this then walked out of the office for vacation.

But I can put a note in my calendar to test it when I return to
my equipment!

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] vgacon: rework Kconfig dependencies
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
                   ` (4 preceding siblings ...)
  2023-07-07 15:07 ` Thomas Zimmermann
@ 2023-08-01 16:55 ` Thomas Zimmermann
  2023-08-01 17:05 ` Russell King (Oracle)
  6 siblings, 0 replies; 22+ messages in thread
From: Thomas Zimmermann @ 2023-08-01 16:55 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: javierm, linux-fbdev, linux-kernel, Russell King, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, linux-riscv,
	linux-csky


[-- Attachment #1.1: Type: text/plain, Size: 2476 bytes --]

ping! What's the status of this patchset?

Am 07.07.23 um 11:52 schrieb Arnd Bergmann:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The list of dependencies here is phrased as an opt-out, but this is missing
> a lot of architectures that don't actually support VGA consoles, and some
> of the entries are stale:
> 
>   - powerpc used to support VGA consoles in the old arch/ppc codebase, but
>     the merged arch/powerpc never did
> 
>   - arm lists footbridge, integrator and netwinder, but netwinder is actually
>     part of footbridge, and integrator does not appear to have an actual
>     VGA hardware, or list it in its ATAG or DT.
> 
>   - mips has a few platforms (jazz, sibyte, and sni) that initialize
>     screen_info, on everything else the console is selected but cannot
>     actually work.
> 
>   - csky, hexgagon, loongarch, nios2, riscv and xtensa are not listed
>     in the opt-out table and declare a screen_info to allow building
>     vga_con, but this cannot work because the console is never selected.
> 
> Replace this with an opt-in table that lists only the platforms that
> remain. This is effectively x86, plus a couple of historic workstation
> and server machines that reused parts of the x86 system architecture.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>   drivers/video/console/Kconfig | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
> index a2a88d42edf0c..47c498defc211 100644
> --- a/drivers/video/console/Kconfig
> +++ b/drivers/video/console/Kconfig
> @@ -7,9 +7,9 @@ menu "Console display driver support"
>   
>   config VGA_CONSOLE
>   	bool "VGA text console" if EXPERT || !X86
> -	depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC &&  !SUPERH && \
> -		(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
> -		!ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !S390 && !UML
> +	depends on ALPHA || IA64 || X86 || \
> +		(ARM && ARCH_FOOTBRIDGE) || \
> +		(MIPS && (MIPS_MALTA || SIBYTE_BCM112X || SIBYTE_SB1250 || SIBYTE_BCM1x80 || SNI_RM))
>   	select APERTURE_HELPERS if (DRM || FB || VFIO_PCI_CORE)
>   	default y
>   	help

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] vgacon: rework Kconfig dependencies
  2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
                   ` (5 preceding siblings ...)
  2023-08-01 16:55 ` Thomas Zimmermann
@ 2023-08-01 17:05 ` Russell King (Oracle)
  2023-08-04 20:55   ` Arnd Bergmann
  6 siblings, 1 reply; 22+ messages in thread
From: Russell King (Oracle) @ 2023-08-01 17:05 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Thomas Zimmermann, javierm, linux-fbdev, linux-kernel, dri-devel,
	Ard Biesheuvel, Helge Deller, Greg Kroah-Hartman, Arnd Bergmann,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Guo Ren, linux-riscv,
	linux-csky

On Fri, Jul 07, 2023 at 11:52:23AM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The list of dependencies here is phrased as an opt-out, but this is missing
> a lot of architectures that don't actually support VGA consoles, and some
> of the entries are stale:
> 
>  - powerpc used to support VGA consoles in the old arch/ppc codebase, but
>    the merged arch/powerpc never did
> 
>  - arm lists footbridge, integrator and netwinder, but netwinder is actually
>    part of footbridge, and integrator does not appear to have an actual
>    VGA hardware, or list it in its ATAG or DT.

Integrator/AP has PCI, and I have had PCI VGA cards plugged in to that
hardware when I've had it.

Provided any platform sets up PCI in a compatible way, and can run the
VGA's BIOS to initialise the card, then vgacon is supportable.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/4] vgacon: rework Kconfig dependencies
  2023-08-01 17:05 ` Russell King (Oracle)
@ 2023-08-04 20:55   ` Arnd Bergmann
  0 siblings, 0 replies; 22+ messages in thread
From: Arnd Bergmann @ 2023-08-04 20:55 UTC (permalink / raw)
  To: Russell King
  Cc: Thomas Zimmermann, Javier Martinez Canillas, linux-fbdev,
	linux-kernel, dri-devel, Ard Biesheuvel, Helge Deller,
	Greg Kroah-Hartman, Arnd Bergmann, Paul Walmsley, Palmer Dabbelt,
	Albert Ou, guoren, linux-riscv, linux-csky

On Tue, Aug 1, 2023, at 19:05, Russell King (Oracle) wrote:
> On Fri, Jul 07, 2023 at 11:52:23AM +0200, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> The list of dependencies here is phrased as an opt-out, but this is missing
>> a lot of architectures that don't actually support VGA consoles, and some
>> of the entries are stale:
>> 
>>  - powerpc used to support VGA consoles in the old arch/ppc codebase, but
>>    the merged arch/powerpc never did
>> 
>>  - arm lists footbridge, integrator and netwinder, but netwinder is actually
>>    part of footbridge, and integrator does not appear to have an actual
>>    VGA hardware, or list it in its ATAG or DT.
>
> Integrator/AP has PCI, and I have had PCI VGA cards plugged in to that
> hardware when I've had it.

I'm pretty sure it can no longer work and broke a while ago,
so I would prefer to leave it out unless someone actually has
a reason to use it and puts the work in to restore the support.
From what I can tell, it's broken in at least three ways with
the new PCI host driver:

- the PCI memory space is identity mapped to its CPU physical
  address as of d3721efce22d1 ("ARM: dts: integratorap: Fix
  PCI windows"), which is generally better for compatibility
  with broken drivers that read the BAR directly, but it
  prevents memory mapped ISA-style devices including VGA text
  buffer.

- vga_base is no longer set by the new PCI host driver, so
  any accesses to the text buffer just end up in user space
  memory at (__iomem*)0xb8000

- there is no DT binding for setting the global screen_info
  to whatever the boot firmware has initialized
  the VGA BIOS to, and the default 80x30 on Arm does not match
  the typical 80x25 text that would be set by the BIOS.

> Provided any platform sets up PCI in a compatible way, and can run the
> VGA's BIOS to initialise the card, then vgacon is supportable.

It looks like only footbridge does at this point, all the other
platforms would need to fix at least some of the three things I
mentioned above, in particular plat-orion is the only thing
setting vga_base but also has the identity map issue.

My impression is that nobody has cared about vgacon on most
Arm systems since it's harder to get working than fbcon with
a native PCI driver (or the built-in pl110 on integrator) but
also less useful.

    Arnd

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-08-04 20:55 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-07  9:52 [PATCH 1/4] vgacon: rework Kconfig dependencies Arnd Bergmann
2023-07-07  9:52 ` [PATCH 2/4] vgacon: rework screen_info #ifdef checks Arnd Bergmann
2023-07-07 13:40   ` Javier Martinez Canillas
2023-07-07 14:32     ` Arnd Bergmann
2023-07-07 15:27       ` Javier Martinez Canillas
2023-07-08 14:11   ` Thomas Bogendoerfer
2023-07-07  9:52 ` [PATCH 3/4] dummycon: limit Arm console size hack to footbridge Arnd Bergmann
2023-07-07 11:33   ` Linus Walleij
2023-07-07 14:27     ` Arnd Bergmann
2023-07-16 21:22       ` Linus Walleij
2023-07-07 13:41   ` Javier Martinez Canillas
2023-07-07  9:52 ` [PATCH 4/4] vgacon, arch/*: remove unused screen_info definitions Arnd Bergmann
2023-07-07 13:42   ` Javier Martinez Canillas
2023-07-10  3:38   ` Dinh Nguyen
2023-07-10  4:08   ` Max Filippov
2023-07-12 14:46   ` Palmer Dabbelt
2023-07-13  0:33   ` Guo Ren
2023-07-07 13:17 ` [PATCH 1/4] vgacon: rework Kconfig dependencies Javier Martinez Canillas
2023-07-07 15:07 ` Thomas Zimmermann
2023-08-01 16:55 ` Thomas Zimmermann
2023-08-01 17:05 ` Russell King (Oracle)
2023-08-04 20:55   ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).