linux/drivers/pci/pcie/dpc.c

// SPDX-License-Identifier: GPL-2.0
/*
 * PCI Express Downstream Port Containment services driver
 * Author: Keith Busch <[email protected]>
 *
 * Copyright (C) 2016 Intel Corp.
 */

#define dev_fmt(fmt)

#include <linux/aer.h>
#include <linux/bitfield.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/pci.h>

#include "portdrv.h"
#include "../pci.h"

#define PCI_EXP_DPC_CTL_EN_MASK

static const char * const rp_pio_error_string[] =;

void pci_save_dpc_state(struct pci_dev *dev)
{}

void pci_restore_dpc_state(struct pci_dev *dev)
{}

static DECLARE_WAIT_QUEUE_HEAD(dpc_completed_waitqueue);

#ifdef CONFIG_HOTPLUG_PCI_PCIE
static bool dpc_completed(struct pci_dev *pdev)
{}

/**
 * pci_dpc_recovered - whether DPC triggered and has recovered successfully
 * @pdev: PCI device
 *
 * Return true if DPC was triggered for @pdev and has recovered successfully.
 * Wait for recovery if it hasn't completed yet.  Called from the PCIe hotplug
 * driver to recognize and ignore Link Down/Up events caused by DPC.
 */
bool pci_dpc_recovered(struct pci_dev *pdev)
{}
#endif /* CONFIG_HOTPLUG_PCI_PCIE */

static int dpc_wait_rp_inactive(struct pci_dev *pdev)
{}

pci_ers_result_t dpc_reset_link(struct pci_dev *pdev)
{}

static void dpc_process_rp_pio_error(struct pci_dev *pdev)
{}

static int dpc_get_aer_uncorrect_severity(struct pci_dev *dev,
					  struct aer_err_info *info)
{}

void dpc_process_error(struct pci_dev *pdev)
{}

static void pci_clear_surpdn_errors(struct pci_dev *pdev)
{}

static void dpc_handle_surprise_removal(struct pci_dev *pdev)
{}

static bool dpc_is_surprise_removal(struct pci_dev *pdev)
{}

static irqreturn_t dpc_handler(int irq, void *context)
{}

static irqreturn_t dpc_irq(int irq, void *context)
{}

void pci_dpc_init(struct pci_dev *pdev)
{}

static void dpc_enable(struct pcie_device *dev)
{}

static void dpc_disable(struct pcie_device *dev)
{}

#define FLAG(x, y)
static int dpc_probe(struct pcie_device *dev)
{}

static int dpc_suspend(struct pcie_device *dev)
{}

static int dpc_resume(struct pcie_device *dev)
{}

static void dpc_remove(struct pcie_device *dev)
{}

static struct pcie_port_service_driver dpcdriver =;

int __init pcie_dpc_init(void)
{}