]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fbdev: vga16fb: Request memory region
authorJavier Garcia <rampxxxx@gmail.com>
Tue, 28 Oct 2025 19:16:15 +0000 (20:16 +0100)
committerHelge Deller <deller@gmx.de>
Sat, 15 Nov 2025 12:46:44 +0000 (13:46 +0100)
This patch reserve and release VGA memory region.

This align with Documentation/drm/todo.rst
"Request memory regions in all fbdev drivers"

I've tested with 32bits kernel and qemu.

Signed-off-by: Javier Garcia <rampxxxx@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/vga16fb.c

index 85852bca2d23c22840bff85e57b261455a2e43cd..6b81337a49092d5d750d6026815b94e8741327b3 100644 (file)
@@ -1320,6 +1320,11 @@ static int vga16fb_probe(struct platform_device *dev)
                return ret;
 
        dev_dbg(&dev->dev, "initializing\n");
+       if (!request_mem_region(vga16fb_fix.smem_start, vga16fb_fix.smem_len,
+                               "vga16b")) {
+               dev_err(&dev->dev, "cannot reserve video memory at 0x%lx\n",
+                      vga16fb_fix.smem_start);
+       }
        info = framebuffer_alloc(sizeof(struct vga16fb_par), &dev->dev);
 
        if (!info) {
@@ -1398,6 +1403,8 @@ static int vga16fb_probe(struct platform_device *dev)
  err_ioremap:
        framebuffer_release(info);
  err_fb_alloc:
+       release_mem_region(vga16fb_fix.smem_start,
+                   vga16fb_fix.smem_len);
        return ret;
 }
 
@@ -1407,6 +1414,8 @@ static void vga16fb_remove(struct platform_device *dev)
 
        if (info)
                unregister_framebuffer(info);
+       release_mem_region(vga16fb_fix.smem_start,
+                   vga16fb_fix.smem_len);
 }
 
 static const struct platform_device_id vga16fb_driver_id_table[] = {