// SPDX-License-Identifier: GPL-2.0 /* * PCI Error Disconnect Recover support * Author: Kuppuswamy Sathyanarayanan <[email protected]> * * Copyright (C) 2020 Intel Corp. */ #define dev_fmt(fmt) … #include <linux/pci.h> #include <linux/pci-acpi.h> #include "portdrv.h" #include "../pci.h" #define EDR_PORT_DPC_ENABLE_DSM … #define EDR_PORT_LOCATE_DSM … #define EDR_OST_SUCCESS … #define EDR_OST_FAILED … /* * _DSM wrapper function to enable/disable DPC * @pdev : PCI device structure * * returns 0 on success or errno on failure. */ static int acpi_enable_dpc(struct pci_dev *pdev) { … } /* * _DSM wrapper function to locate DPC port * @pdev : Device which received EDR event * * Returns pci_dev or NULL. Caller is responsible for dropping a reference * on the returned pci_dev with pci_dev_put(). */ static struct pci_dev *acpi_dpc_port_get(struct pci_dev *pdev) { … } /* * _OST wrapper function to let firmware know the status of EDR event * @pdev : Device used to send _OST * @edev : Device which experienced EDR event * @status : Status of EDR event */ static int acpi_send_edr_status(struct pci_dev *pdev, struct pci_dev *edev, u16 status) { … } static void edr_handle_event(acpi_handle handle, u32 event, void *data) { … } void pci_acpi_add_edr_notifier(struct pci_dev *pdev) { … } void pci_acpi_remove_edr_notifier(struct pci_dev *pdev) { … }