linux/drivers/gpu/drm/i915/i915_pci.c

/*
 * Copyright © 2016 Intel Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 *
 */

#include <drm/drm_color_mgmt.h>
#include <drm/drm_drv.h>
#include <drm/intel/i915_pciids.h>

#include "display/intel_display_driver.h"
#include "gt/intel_gt_regs.h"
#include "gt/intel_sa_media.h"
#include "gem/i915_gem_object_types.h"

#include "i915_driver.h"
#include "i915_drv.h"
#include "i915_pci.h"
#include "i915_reg.h"
#include "intel_pci_config.h"

__diag_push();
__diag_ignore_all("-Woverride-init", "Allow field initialization overrides for device info");

#define PLATFORM
#define GEN

#define LEGACY_CACHELEVEL

#define TGL_CACHELEVEL

#define MTL_CACHELEVEL

/* Keep in gen based order, and chronological order within a gen */

#define GEN_DEFAULT_PAGE_SIZES

#define GEN_DEFAULT_REGIONS

#define I830_FEATURES

#define I845_FEATURES

static const struct intel_device_info i830_info =;

static const struct intel_device_info i845g_info =;

static const struct intel_device_info i85x_info =;

static const struct intel_device_info i865g_info =;

#define GEN3_FEATURES

static const struct intel_device_info i915g_info =;

static const struct intel_device_info i915gm_info =;

static const struct intel_device_info i945g_info =;

static const struct intel_device_info i945gm_info =;

static const struct intel_device_info g33_info =;

static const struct intel_device_info pnv_g_info =;

static const struct intel_device_info pnv_m_info =;

#define GEN4_FEATURES

static const struct intel_device_info i965g_info =;

static const struct intel_device_info i965gm_info =;

static const struct intel_device_info g45_info =;

static const struct intel_device_info gm45_info =;

#define GEN5_FEATURES

static const struct intel_device_info ilk_d_info =;

static const struct intel_device_info ilk_m_info =;

#define GEN6_FEATURES

#define SNB_D_PLATFORM

static const struct intel_device_info snb_d_gt1_info =;

static const struct intel_device_info snb_d_gt2_info =;

#define SNB_M_PLATFORM


static const struct intel_device_info snb_m_gt1_info =;

static const struct intel_device_info snb_m_gt2_info =;

#define GEN7_FEATURES

#define IVB_D_PLATFORM

static const struct intel_device_info ivb_d_gt1_info =;

static const struct intel_device_info ivb_d_gt2_info =;

#define IVB_M_PLATFORM

static const struct intel_device_info ivb_m_gt1_info =;

static const struct intel_device_info ivb_m_gt2_info =;

static const struct intel_device_info ivb_q_info =;

static const struct intel_device_info vlv_info =;

#define G75_FEATURES

#define HSW_PLATFORM

static const struct intel_device_info hsw_gt1_info =;

static const struct intel_device_info hsw_gt2_info =;

static const struct intel_device_info hsw_gt3_info =;

#define GEN8_FEATURES

#define BDW_PLATFORM

static const struct intel_device_info bdw_gt1_info =;

static const struct intel_device_info bdw_gt2_info =;

static const struct intel_device_info bdw_rsvd_info =;

static const struct intel_device_info bdw_gt3_info =;

static const struct intel_device_info chv_info =;

#define GEN9_DEFAULT_PAGE_SIZES

#define GEN9_FEATURES

#define SKL_PLATFORM

static const struct intel_device_info skl_gt1_info =;

static const struct intel_device_info skl_gt2_info =;

#define SKL_GT3_PLUS_PLATFORM


static const struct intel_device_info skl_gt3_info =;

static const struct intel_device_info skl_gt4_info =;

#define GEN9_LP_FEATURES

static const struct intel_device_info bxt_info =;

static const struct intel_device_info glk_info =;

#define KBL_PLATFORM

static const struct intel_device_info kbl_gt1_info =;

static const struct intel_device_info kbl_gt2_info =;

static const struct intel_device_info kbl_gt3_info =;

#define CFL_PLATFORM

static const struct intel_device_info cfl_gt1_info =;

static const struct intel_device_info cfl_gt2_info =;

static const struct intel_device_info cfl_gt3_info =;

#define CML_PLATFORM

static const struct intel_device_info cml_gt1_info =;

static const struct intel_device_info cml_gt2_info =;

#define GEN11_DEFAULT_PAGE_SIZES

#define GEN11_FEATURES

static const struct intel_device_info icl_info =;

static const struct intel_device_info ehl_info =;

static const struct intel_device_info jsl_info =;

#define GEN12_FEATURES

static const struct intel_device_info tgl_info =;

static const struct intel_device_info rkl_info =;

#define DGFX_FEATURES

static const struct intel_device_info dg1_info =;

static const struct intel_device_info adl_s_info =;

static const struct intel_device_info adl_p_info =;

#undef GEN

#define XE_HP_PAGE_SIZES

#define XE_HP_FEATURES

#define DG2_FEATURES

static const struct intel_device_info dg2_info =;

static const struct intel_device_info ats_m_info =;

static const struct intel_gt_definition xelpmp_extra_gt[] =;

static const struct intel_device_info mtl_info =;

#undef PLATFORM

__diag_pop();

/*
 * Make sure any device matches here are from most specific to most
 * general.  For example, since the Quanta match is based on the subsystem
 * and subvendor IDs, we need it to come before the more general IVB
 * PCI ID matches, otherwise we'll use the wrong info struct above.
 */
static const struct pci_device_id pciidlist[] =;
MODULE_DEVICE_TABLE(pci, pciidlist);

static void i915_pci_remove(struct pci_dev *pdev)
{}

/* is device_id present in comma separated list of ids */
static bool device_id_in_list(u16 device_id, const char *devices, bool negative)
{}

static bool id_forced(u16 device_id)
{}

static bool id_blocked(u16 device_id)
{}

bool i915_pci_resource_valid(struct pci_dev *pdev, int bar)
{}

static bool intel_mmio_bar_valid(struct pci_dev *pdev, struct intel_device_info *intel_info)
{}

static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{}

static void i915_pci_shutdown(struct pci_dev *pdev)
{}

static struct pci_driver i915_pci_driver =;

int i915_pci_register_driver(void)
{}

void i915_pci_unregister_driver(void)
{}