// SPDX-License-Identifier: GPL-2.0+ /* * PCI Express Hot Plug Controller Driver * * Copyright (C) 1995,2001 Compaq Computer Corporation * Copyright (C) 2001 Greg Kroah-Hartman ([email protected]) * Copyright (C) 2001 IBM Corp. * Copyright (C) 2003-2004 Intel Corporation * * All rights reserved. * * Send feedback to <[email protected]>, <[email protected]> * */ #define dev_fmt(fmt) … #include <linux/kernel.h> #include <linux/types.h> #include <linux/pci.h> #include "../pci.h" #include "pciehp.h" /** * pciehp_configure_device() - enumerate PCI devices below a hotplug bridge * @ctrl: PCIe hotplug controller * * Enumerate PCI devices below a hotplug bridge and add them to the system. * Return 0 on success, %-EEXIST if the devices are already enumerated or * %-ENODEV if enumeration failed. */ int pciehp_configure_device(struct controller *ctrl) { … } /** * pciehp_unconfigure_device() - remove PCI devices below a hotplug bridge * @ctrl: PCIe hotplug controller * @presence: whether the card is still present in the slot; * true for safe removal via sysfs or an Attention Button press, * false for surprise removal * * Unbind PCI devices below a hotplug bridge from their drivers and remove * them from the system. Safely removed devices are quiesced. Surprise * removed devices are marked as such to prevent further accesses. */ void pciehp_unconfigure_device(struct controller *ctrl, bool presence) { … }