diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-16 23:40:32 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-17 15:11:22 +0200 |
commit | 20ea6adbf199097c4f5f591ffee088340630dae4 (patch) | |
tree | d6719d95e136611a1c25bbf7789652d6d402779d /target/linux/bcm27xx/patches-5.15/950-0881-Revert-fbdev-Hot-unplug-firmware-fb-devices-on-force.patch | |
parent | bca05bd072180dc38ef740b37ded9572a6db1981 (diff) | |
download | upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.gz upstream-20ea6adbf199097c4f5f591ffee088340630dae4.tar.bz2 upstream-20ea6adbf199097c4f5f591ffee088340630dae4.zip |
bcm27xx: add support for linux v5.15
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2708/RPiB+, bcm2709/RPi3B, bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0881-Revert-fbdev-Hot-unplug-firmware-fb-devices-on-force.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0881-Revert-fbdev-Hot-unplug-firmware-fb-devices-on-force.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0881-Revert-fbdev-Hot-unplug-firmware-fb-devices-on-force.patch b/target/linux/bcm27xx/patches-5.15/950-0881-Revert-fbdev-Hot-unplug-firmware-fb-devices-on-force.patch new file mode 100644 index 0000000000..b6ae1dc214 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0881-Revert-fbdev-Hot-unplug-firmware-fb-devices-on-force.patch @@ -0,0 +1,86 @@ +From 4899d3181465e16d548af03b7825c4b06e0f0e44 Mon Sep 17 00:00:00 2001 +From: Dom Cobley <popcornmix@gmail.com> +Date: Thu, 28 Apr 2022 16:11:34 +0100 +Subject: [PATCH] Revert "fbdev: Hot-unplug firmware fb devices on + forced removal" + +This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a. +--- + drivers/video/fbdev/core/fbmem.c | 29 +++-------------------------- + include/linux/fb.h | 1 - + 2 files changed, 3 insertions(+), 27 deletions(-) + +--- a/drivers/video/fbdev/core/fbmem.c ++++ b/drivers/video/fbdev/core/fbmem.c +@@ -25,7 +25,6 @@ + #include <linux/init.h> + #include <linux/linux_logo.h> + #include <linux/proc_fs.h> +-#include <linux/platform_device.h> + #include <linux/seq_file.h> + #include <linux/console.h> + #include <linux/kmod.h> +@@ -1596,36 +1595,18 @@ static void do_remove_conflicting_frameb + /* check all firmware fbs and kick off if the base addr overlaps */ + for_each_registered_fb(i) { + struct apertures_struct *gen_aper; +- struct device *device; + + if (!(registered_fb[i]->flags & FBINFO_MISC_FIRMWARE)) + continue; + + gen_aper = registered_fb[i]->apertures; +- device = registered_fb[i]->device; + if (fb_do_apertures_overlap(gen_aper, a) || + (primary && gen_aper && gen_aper->count && + gen_aper->ranges[0].base == VGA_FB_PHYS)) { + + printk(KERN_INFO "fb%d: switching to %s from %s\n", + i, name, registered_fb[i]->fix.id); +- +- /* +- * If we kick-out a firmware driver, we also want to remove +- * the underlying platform device, such as simple-framebuffer, +- * VESA, EFI, etc. A native driver will then be able to +- * allocate the memory range. +- * +- * If it's not a platform device, at least print a warning. A +- * fix would add code to remove the device from the system. +- */ +- if (dev_is_platform(device)) { +- registered_fb[i]->forced_out = true; +- platform_device_unregister(to_platform_device(device)); +- } else { +- pr_warn("fb%d: cannot remove device\n", i); +- do_unregister_framebuffer(registered_fb[i]); +- } ++ do_unregister_framebuffer(registered_fb[i]); + } + } + } +@@ -1952,13 +1933,9 @@ EXPORT_SYMBOL(register_framebuffer); + void + unregister_framebuffer(struct fb_info *fb_info) + { +- bool forced_out = fb_info->forced_out; +- +- if (!forced_out) +- mutex_lock(®istration_lock); ++ mutex_lock(®istration_lock); + do_unregister_framebuffer(fb_info); +- if (!forced_out) +- mutex_unlock(®istration_lock); ++ mutex_unlock(®istration_lock); + } + EXPORT_SYMBOL(unregister_framebuffer); + +--- a/include/linux/fb.h ++++ b/include/linux/fb.h +@@ -502,7 +502,6 @@ struct fb_info { + } *apertures; + + bool skip_vt_switch; /* no VT switch on suspend/resume required */ +- bool forced_out; /* set when being removed by another driver */ + }; + + static inline struct apertures_struct *alloc_apertures(unsigned int max_num) { |