]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
vga16fb: drop powerpc support
authorArnd Bergmann <arnd@arndb.de>
Mon, 9 Oct 2023 21:18:43 +0000 (23:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Oct 2023 08:17:02 +0000 (10:17 +0200)
I noticed that commit 0db5b61e0dc07 ("fbdev/vga16fb: Create
EGA/VGA devices in sysfb code") broke vga16fb on non-x86 platforms,
because the sysfb code never creates a vga-framebuffer device when
screen_info.orig_video_isVGA is set to '1' instead of VIDEO_TYPE_VGAC.

However, it turns out that the only architecture that has allowed
building vga16fb in the past 20 years is powerpc, and this only worked
on two 32-bit platforms and never on 64-bit powerpc. The last machine
that actually used this was removed in linux-3.10, so this is all dead
code and can be removed.

The big-endian support in vga16fb.c could also be removed, but I'd just
leave this in place.

Fixes: 933ee7119fb14 ("powerpc: remove PReP platform")
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20231009211845.3136536-8-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kernel/setup-common.c
drivers/video/fbdev/Kconfig
drivers/video/fbdev/vga16fb.c

index 2f1026fba00d5a10b90a8d05447c2f3b87af444f..22d48a54306113191dbe880bf8ebc4f52f2e28dc 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/seq_file.h>
 #include <linux/ioport.h>
 #include <linux/console.h>
-#include <linux/screen_info.h>
 #include <linux/root_dev.h>
 #include <linux/cpu.h>
 #include <linux/unistd.h>
@@ -98,21 +97,6 @@ int boot_cpu_hwid = -1;
 int dcache_bsize;
 int icache_bsize;
 
-/*
- * This still seems to be needed... -- paulus
- */ 
-struct screen_info screen_info = {
-       .orig_x = 0,
-       .orig_y = 25,
-       .orig_video_cols = 80,
-       .orig_video_lines = 25,
-       .orig_video_isVGA = 1,
-       .orig_video_points = 16
-};
-#if defined(CONFIG_FB_VGA16_MODULE)
-EXPORT_SYMBOL(screen_info);
-#endif
-
 /* Variables required to store legacy IO irq routing */
 int of_i8042_kbd_irq;
 EXPORT_SYMBOL_GPL(of_i8042_kbd_irq);
index c29754b65c0ec923387cfb8c1b7e0f47557d33cd..0e3548bd28504a810f3575b5fd35208777b59aff 100644 (file)
@@ -363,7 +363,7 @@ config FB_IMSTT
 
 config FB_VGA16
        tristate "VGA 16-color graphics support"
-       depends on FB && (X86 || PPC)
+       depends on FB && X86
        select APERTURE_HELPERS
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
index b43c874c199f679f7d3c4e063b3a7f4bda4c97da..6094080852a53cd32205c5c26e0a28a53a446512 100644 (file)
@@ -185,8 +185,6 @@ static inline void setindex(int index)
 /* Check if the video mode is supported by the driver */
 static inline int check_mode_supported(const struct screen_info *si)
 {
-       /* non-x86 architectures treat orig_video_isVGA as a boolean flag */
-#if defined(CONFIG_X86)
        /* only EGA and VGA in 16 color graphic mode are supported */
        if (si->orig_video_isVGA != VIDEO_TYPE_EGAC &&
            si->orig_video_isVGA != VIDEO_TYPE_VGAC)
@@ -197,7 +195,7 @@ static inline int check_mode_supported(const struct screen_info *si)
            si->orig_video_mode != 0x10 &&      /* 640x350/4 (EGA) */
            si->orig_video_mode != 0x12)        /* 640x480/4 (VGA) */
                return -ENODEV;
-#endif
+
        return 0;
 }
 
@@ -1338,12 +1336,7 @@ static int vga16fb_probe(struct platform_device *dev)
        printk(KERN_INFO "vga16fb: mapped to 0x%p\n", info->screen_base);
        par = info->par;
 
-#if defined(CONFIG_X86)
        par->isVGA = si->orig_video_isVGA == VIDEO_TYPE_VGAC;
-#else
-       /* non-x86 architectures treat orig_video_isVGA as a boolean flag */
-       par->isVGA = si->orig_video_isVGA;
-#endif
        par->palette_blanked = 0;
        par->vesa_blanked = 0;