linux/drivers/firmware/efi/sysfb_efi.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Generic System Framebuffers
 * Copyright (c) 2012-2013 David Herrmann <[email protected]>
 *
 * EFI Quirks Copyright (c) 2006 Edgar Hucek <[email protected]>
 */

/*
 * EFI Quirks
 * Several EFI systems do not correctly advertise their boot framebuffers.
 * Hence, we use this static table of known broken machines and fix up the
 * information so framebuffer drivers can load correctly.
 */

#include <linux/dmi.h>
#include <linux/err.h>
#include <linux/efi.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/of_address.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/screen_info.h>
#include <linux/sysfb.h>
#include <video/vga.h>

enum {};

struct efifb_dmi_info efifb_dmi_list[] =;

void efifb_setup_from_dmi(struct screen_info *si, const char *opt)
{}

#define choose_value(dmivalue, fwvalue, field, flags)

static int __init efifb_set_system(const struct dmi_system_id *id)
{}

#define EFIFB_DMI_SYSTEM_ID(vendor, name, enumid)

static const struct dmi_system_id efifb_dmi_system_table[] __initconst =;

/*
 * Some devices have a portrait LCD but advertise a landscape resolution (and
 * pitch). We simply swap width and height for these devices so that we can
 * correctly deal with some of them coming with multiple resolutions.
 */
static const struct dmi_system_id efifb_dmi_swap_width_height[] __initconst =;

static bool efifb_overlaps_pci_range(const struct of_pci_range *range)
{}

static struct device_node *find_pci_overlap_node(void)
{}

/*
 * 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)
{}

static const struct fwnode_operations efifb_fwnode_ops =;

#ifdef CONFIG_EFI
static struct fwnode_handle efifb_fwnode;

__init void sysfb_apply_efi_quirks(void)
{}

__init void sysfb_set_efifb_fwnode(struct platform_device *pd)
{}
#endif