#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/list_sort.h>
#include <linux/of_address.h>
#include <linux/of_pci.h>
#include <linux/platform_device.h>
#include "pcie-cadence.h"
#define LINK_RETRAIN_TIMEOUT …
static u64 bar_max_size[] = …;
static u8 bar_aperture_mask[] = …;
void __iomem *cdns_pci_map_bus(struct pci_bus *bus, unsigned int devfn,
int where)
{ … }
static struct pci_ops cdns_pcie_host_ops = …;
static int cdns_pcie_host_training_complete(struct cdns_pcie *pcie)
{ … }
static int cdns_pcie_host_wait_for_link(struct cdns_pcie *pcie)
{ … }
static int cdns_pcie_retrain(struct cdns_pcie *pcie)
{ … }
static void cdns_pcie_host_enable_ptm_response(struct cdns_pcie *pcie)
{ … }
static int cdns_pcie_host_start_link(struct cdns_pcie_rc *rc)
{ … }
static int cdns_pcie_host_init_root_port(struct cdns_pcie_rc *rc)
{ … }
static int cdns_pcie_host_bar_ib_config(struct cdns_pcie_rc *rc,
enum cdns_pcie_rp_bar bar,
u64 cpu_addr, u64 size,
unsigned long flags)
{ … }
static enum cdns_pcie_rp_bar
cdns_pcie_host_find_min_bar(struct cdns_pcie_rc *rc, u64 size)
{ … }
static enum cdns_pcie_rp_bar
cdns_pcie_host_find_max_bar(struct cdns_pcie_rc *rc, u64 size)
{ … }
static int cdns_pcie_host_bar_config(struct cdns_pcie_rc *rc,
struct resource_entry *entry)
{ … }
static int cdns_pcie_host_dma_ranges_cmp(void *priv, const struct list_head *a,
const struct list_head *b)
{ … }
static int cdns_pcie_host_map_dma_ranges(struct cdns_pcie_rc *rc)
{ … }
static int cdns_pcie_host_init_address_translation(struct cdns_pcie_rc *rc)
{ … }
static int cdns_pcie_host_init(struct device *dev,
struct cdns_pcie_rc *rc)
{ … }
int cdns_pcie_host_setup(struct cdns_pcie_rc *rc)
{ … }