Commit 2cb14c86 authored by Thomas Zimmermann's avatar Thomas Zimmermann

fbdev/vga16fb: Do not use struct fb_info.apertures

Acquire ownership of the firmware scanout buffer by calling Linux'
aperture helpers. Remove the use of struct fb_info.apertures and do
not set FBINFO_MISC_FIRMWARE; both of which previously configured
buffer ownership.
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-18-tzimmermann@suse.de
parent 678573b8
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
* archive for more details. * archive for more details.
*/ */
#include <linux/aperture.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/errno.h> #include <linux/errno.h>
...@@ -1324,11 +1325,6 @@ static int vga16fb_probe(struct platform_device *dev) ...@@ -1324,11 +1325,6 @@ static int vga16fb_probe(struct platform_device *dev)
ret = -ENOMEM; ret = -ENOMEM;
goto err_fb_alloc; goto err_fb_alloc;
} }
info->apertures = alloc_apertures(1);
if (!info->apertures) {
ret = -ENOMEM;
goto err_ioremap;
}
/* XXX share VGA_FB_PHYS_BASE and I/O region with vgacon and others */ /* XXX share VGA_FB_PHYS_BASE and I/O region with vgacon and others */
info->screen_base = (void __iomem *)VGA_MAP_MEM(VGA_FB_PHYS_BASE, 0); info->screen_base = (void __iomem *)VGA_MAP_MEM(VGA_FB_PHYS_BASE, 0);
...@@ -1363,8 +1359,7 @@ static int vga16fb_probe(struct platform_device *dev) ...@@ -1363,8 +1359,7 @@ static int vga16fb_probe(struct platform_device *dev)
info->fix = vga16fb_fix; info->fix = vga16fb_fix;
/* supports rectangles with widths of multiples of 8 */ /* supports rectangles with widths of multiples of 8 */
info->pixmap.blit_x = 1 << 7 | 1 << 15 | 1 << 23 | 1 << 31; info->pixmap.blit_x = 1 << 7 | 1 << 15 | 1 << 23 | 1 << 31;
info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE | info->flags = FBINFO_FLAG_DEFAULT | FBINFO_HWACCEL_YPAN;
FBINFO_HWACCEL_YPAN;
i = (info->var.bits_per_pixel == 8) ? 256 : 16; i = (info->var.bits_per_pixel == 8) ? 256 : 16;
ret = fb_alloc_cmap(&info->cmap, i, 0); ret = fb_alloc_cmap(&info->cmap, i, 0);
...@@ -1382,9 +1377,9 @@ static int vga16fb_probe(struct platform_device *dev) ...@@ -1382,9 +1377,9 @@ static int vga16fb_probe(struct platform_device *dev)
vga16fb_update_fix(info); vga16fb_update_fix(info);
info->apertures->ranges[0].base = VGA_FB_PHYS_BASE; ret = devm_aperture_acquire_for_platform_device(dev, VGA_FB_PHYS_BASE, VGA_FB_PHYS_SIZE);
info->apertures->ranges[0].size = VGA_FB_PHYS_SIZE; if (ret)
goto err_check_var;
if (register_framebuffer(info) < 0) { if (register_framebuffer(info) < 0) {
printk(KERN_ERR "vga16fb: unable to register framebuffer\n"); printk(KERN_ERR "vga16fb: unable to register framebuffer\n");
ret = -EINVAL; ret = -EINVAL;
......
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