Commit 5b6373de authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/fbdev: Remove aperture handling and FBINFO_MISC_FIRMWARE

There are no users left of struct fb_info.apertures and the flag
FBINFO_MISC_FIRMWARE. Remove both and the aperture-ownership code
in the fbdev core. All code for aperture ownership is now located
in the fbdev drivers.
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221219160516.23436-19-tzimmermann@suse.de
parent 2cb14c86
......@@ -13,7 +13,6 @@
#include <linux/module.h>
#include <linux/aperture.h>
#include <linux/compat.h>
#include <linux/types.h>
#include <linux/errno.h>
......@@ -1653,32 +1652,6 @@ static void do_unregister_framebuffer(struct fb_info *fb_info)
put_fb_info(fb_info);
}
static int fb_aperture_acquire_for_platform_device(struct fb_info *fb_info)
{
struct apertures_struct *ap = fb_info->apertures;
struct device *dev = fb_info->device;
struct platform_device *pdev;
unsigned int i;
int ret;
if (!ap)
return 0;
if (!dev_is_platform(dev))
return 0;
pdev = to_platform_device(dev);
for (ret = 0, i = 0; i < ap->count; ++i) {
ret = devm_aperture_acquire_for_platform_device(pdev, ap->ranges[i].base,
ap->ranges[i].size);
if (ret)
break;
}
return ret;
}
/**
* register_framebuffer - registers a frame buffer device
* @fb_info: frame buffer info structure
......@@ -1693,12 +1666,6 @@ register_framebuffer(struct fb_info *fb_info)
{
int ret;
if (fb_info->flags & FBINFO_MISC_FIRMWARE) {
ret = fb_aperture_acquire_for_platform_device(fb_info);
if (ret)
return ret;
}
mutex_lock(&registration_lock);
ret = do_register_framebuffer(fb_info);
mutex_unlock(&registration_lock);
......
......@@ -88,7 +88,6 @@ void framebuffer_release(struct fb_info *info)
mutex_destroy(&info->bl_curve_mutex);
#endif
kfree(info->apertures);
kfree(info);
}
EXPORT_SYMBOL(framebuffer_release);
......
......@@ -423,8 +423,6 @@ struct fb_tile_ops {
*/
#define FBINFO_MISC_ALWAYS_SETPAR 0x40000
/* where the fb is a firmware driver, and can be replaced with a proper one */
#define FBINFO_MISC_FIRMWARE 0x80000
/*
* Host and GPU endianness differ.
*/
......@@ -499,30 +497,10 @@ struct fb_info {
void *fbcon_par; /* fbcon use-only private area */
/* From here on everything is device dependent */
void *par;
/* we need the PCI or similar aperture base/size not
smem_start/size as smem_start may just be an object
allocated inside the aperture so may not actually overlap */
struct apertures_struct {
unsigned int count;
struct aperture {
resource_size_t base;
resource_size_t size;
} ranges[0];
} *apertures;
bool skip_vt_switch; /* no VT switch on suspend/resume required */
};
static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
struct apertures_struct *a;
a = kzalloc(struct_size(a, ranges, max_num), GFP_KERNEL);
if (!a)
return NULL;
a->count = max_num;
return a;
}
#define FBINFO_FLAG_DEFAULT FBINFO_DEFAULT
/* This will go away
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment