Merge tag 'defconfig-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / drivers / firmware / efi / efi-init.c
index a552a08..b19ce1a 100644 (file)
@@ -275,93 +275,3 @@ void __init efi_init(void)
        }
 #endif
 }
-
-static bool efifb_overlaps_pci_range(const struct of_pci_range *range)
-{
-       u64 fb_base = screen_info.lfb_base;
-
-       if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE)
-               fb_base |= (u64)(unsigned long)screen_info.ext_lfb_base << 32;
-
-       return fb_base >= range->cpu_addr &&
-              fb_base < (range->cpu_addr + range->size);
-}
-
-static struct device_node *find_pci_overlap_node(void)
-{
-       struct device_node *np;
-
-       for_each_node_by_type(np, "pci") {
-               struct of_pci_range_parser parser;
-               struct of_pci_range range;
-               int err;
-
-               err = of_pci_range_parser_init(&parser, np);
-               if (err) {
-                       pr_warn("of_pci_range_parser_init() failed: %d\n", err);
-                       continue;
-               }
-
-               for_each_of_pci_range(&parser, &range)
-                       if (efifb_overlaps_pci_range(&range))
-                               return np;
-       }
-       return NULL;
-}
-
-/*
- * If the efifb framebuffer is backed by a PCI graphics controller, we have
- * to ensure that this relation is expressed using a device link when
- * running in DT mode, or the probe order may be reversed, resulting in a
- * resource reservation conflict on the memory window that the efifb
- * framebuffer steals from the PCIe host bridge.
- */
-static int efifb_add_links(struct fwnode_handle *fwnode)
-{
-       struct device_node *sup_np;
-
-       sup_np = find_pci_overlap_node();
-
-       /*
-        * If there's no PCI graphics controller backing the efifb, we are
-        * done here.
-        */
-       if (!sup_np)
-               return 0;
-
-       fwnode_link_add(fwnode, of_fwnode_handle(sup_np));
-       of_node_put(sup_np);
-
-       return 0;
-}
-
-static const struct fwnode_operations efifb_fwnode_ops = {
-       .add_links = efifb_add_links,
-};
-
-static struct fwnode_handle efifb_fwnode;
-
-static int __init register_gop_device(void)
-{
-       struct platform_device *pd;
-       int err;
-
-       if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI)
-               return 0;
-
-       pd = platform_device_alloc("efi-framebuffer", 0);
-       if (!pd)
-               return -ENOMEM;
-
-       if (IS_ENABLED(CONFIG_PCI)) {
-               fwnode_init(&efifb_fwnode, &efifb_fwnode_ops);
-               pd->dev.fwnode = &efifb_fwnode;
-       }
-
-       err = platform_device_add_data(pd, &screen_info, sizeof(screen_info));
-       if (err)
-               return err;
-
-       return platform_device_add(pd);
-}
-subsys_initcall(register_gop_device);