// SPDX-License-Identifier: GPL-2.0
+#include <linux/aperture.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 
 static int lynxfb_kick_out_firmware_fb(struct pci_dev *pdev)
 {
-       struct apertures_struct *ap;
+       resource_size_t base = pci_resource_start(pdev, 0);
+       resource_size_t size = pci_resource_len(pdev, 0);
        bool primary = false;
 
-       ap = alloc_apertures(1);
-       if (!ap)
-               return -ENOMEM;
-
-       ap->ranges[0].base = pci_resource_start(pdev, 0);
-       ap->ranges[0].size = pci_resource_len(pdev, 0);
 #ifdef CONFIG_X86
        primary = pdev->resource[PCI_ROM_RESOURCE].flags &
                                        IORESOURCE_ROM_SHADOW;
 #endif
-       remove_conflicting_framebuffers(ap, "sm750_fb1", primary);
-       kfree(ap);
-       return 0;
+
+       return aperture_remove_conflicting_devices(base, size, primary, "sm750_fb1");
 }
 
 static int lynxfb_pci_probe(struct pci_dev *pdev,
 
 
 #include "radeonfb.h"
 
+#include <linux/aperture.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
 
 static int radeon_kick_out_firmware_fb(struct pci_dev *pdev)
 {
-       struct apertures_struct *ap;
+       resource_size_t base = pci_resource_start(pdev, 0);
+       resource_size_t size = pci_resource_len(pdev, 0);
 
-       ap = alloc_apertures(1);
-       if (!ap)
-               return -ENOMEM;
-
-       ap->ranges[0].base = pci_resource_start(pdev, 0);
-       ap->ranges[0].size = pci_resource_len(pdev, 0);
-
-       remove_conflicting_framebuffers(ap, KBUILD_MODNAME, false);
-
-       kfree(ap);
-
-       return 0;
+       return aperture_remove_conflicting_devices(base, size, KBUILD_MODNAME, false);
 }
 
 static int radeonfb_pci_register(struct pci_dev *pdev,
 
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
+#include <linux/aperture.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/vmalloc.h>
        info->screen_size = dio_fb_size;
 
 getmem_done:
-       remove_conflicting_framebuffers(info->apertures,
-                                       KBUILD_MODNAME, false);
+       aperture_remove_conflicting_devices(info->apertures->ranges[0].base,
+                                           info->apertures->ranges[0].size,
+                                           KBUILD_MODNAME, false);
 
        if (gen2vm) {
                /* framebuffer is reallocated, clear screen_info to avoid misuse from kexec */