linux/drivers/pci/controller/dwc/pcie-designware-host.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Synopsys DesignWare PCIe host controller driver
 *
 * Copyright (C) 2013 Samsung Electronics Co., Ltd.
 *		https://www.samsung.com
 *
 * Author: Jingoo Han <[email protected]>
 */

#include <linux/iopoll.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/irqdomain.h>
#include <linux/msi.h>
#include <linux/of_address.h>
#include <linux/of_pci.h>
#include <linux/pci_regs.h>
#include <linux/platform_device.h>

#include "../../pci.h"
#include "pcie-designware.h"

static struct pci_ops dw_pcie_ops;
static struct pci_ops dw_child_pcie_ops;

static void dw_msi_ack_irq(struct irq_data *d)
{}

static void dw_msi_mask_irq(struct irq_data *d)
{}

static void dw_msi_unmask_irq(struct irq_data *d)
{}

static struct irq_chip dw_pcie_msi_irq_chip =;

static struct msi_domain_info dw_pcie_msi_domain_info =;

/* MSI int handler */
irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp)
{}

/* Chained MSI interrupt service routine */
static void dw_chained_msi_isr(struct irq_desc *desc)
{}

static void dw_pci_setup_msi_msg(struct irq_data *d, struct msi_msg *msg)
{}

static void dw_pci_bottom_mask(struct irq_data *d)
{}

static void dw_pci_bottom_unmask(struct irq_data *d)
{}

static void dw_pci_bottom_ack(struct irq_data *d)
{}

static struct irq_chip dw_pci_msi_bottom_irq_chip =;

static int dw_pcie_irq_domain_alloc(struct irq_domain *domain,
				    unsigned int virq, unsigned int nr_irqs,
				    void *args)
{}

static void dw_pcie_irq_domain_free(struct irq_domain *domain,
				    unsigned int virq, unsigned int nr_irqs)
{}

static const struct irq_domain_ops dw_pcie_msi_domain_ops =;

int dw_pcie_allocate_domains(struct dw_pcie_rp *pp)
{}

static void dw_pcie_free_msi(struct dw_pcie_rp *pp)
{}

static void dw_pcie_msi_init(struct dw_pcie_rp *pp)
{}

static int dw_pcie_parse_split_msi_irq(struct dw_pcie_rp *pp)
{}

static int dw_pcie_msi_host_init(struct dw_pcie_rp *pp)
{}

static void dw_pcie_host_request_msg_tlp_res(struct dw_pcie_rp *pp)
{}

int dw_pcie_host_init(struct dw_pcie_rp *pp)
{}
EXPORT_SYMBOL_GPL();

void dw_pcie_host_deinit(struct dw_pcie_rp *pp)
{}
EXPORT_SYMBOL_GPL();

static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus,
						unsigned int devfn, int where)
{}

static int dw_pcie_rd_other_conf(struct pci_bus *bus, unsigned int devfn,
				 int where, int size, u32 *val)
{}

static int dw_pcie_wr_other_conf(struct pci_bus *bus, unsigned int devfn,
				 int where, int size, u32 val)
{}

static struct pci_ops dw_child_pcie_ops =;

void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus *bus, unsigned int devfn, int where)
{}
EXPORT_SYMBOL_GPL();

static struct pci_ops dw_pcie_ops =;

static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp)
{}

int dw_pcie_setup_rc(struct dw_pcie_rp *pp)
{}
EXPORT_SYMBOL_GPL();

static int dw_pcie_pme_turn_off(struct dw_pcie *pci)
{}

int dw_pcie_suspend_noirq(struct dw_pcie *pci)
{}
EXPORT_SYMBOL_GPL();

int dw_pcie_resume_noirq(struct dw_pcie *pci)
{}
EXPORT_SYMBOL_GPL();