Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eca0d467 authored by Matthew Garrett's avatar Matthew Garrett Committed by Bjorn Helgaas
Browse files

PCI: Add pcibios_add_device



Platforms may want to provide architecture-specific functionality during
PCI enumeration. Add a pcibios_add_device() call that architectures can
override to do so.

Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Tested-by: default avatarSeth Forshee <seth.forshee@canonical.com>
parent dd5fc854
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -170,6 +170,11 @@ int pci_bus_add_device(struct pci_dev *dev)
	int retval;

	pci_fixup_device(pci_fixup_final, dev);

	retval = pcibios_add_device(dev);
	if (retval)
		return retval;

	retval = device_add(&dev->dev);
	if (retval)
		return retval;
+13 −0
Original line number Diff line number Diff line
@@ -1333,6 +1333,19 @@ void pcim_pin_device(struct pci_dev *pdev)
		dr->pinned = 1;
}

/*
 * pcibios_add_device - provide arch specific hooks when adding device dev
 * @dev: the PCI device being added
 *
 * Permits the platform to provide architecture specific functionality when
 * devices are added. This is the default implementation. Architecture
 * implementations can override this.
 */
int __weak pcibios_add_device (struct pci_dev *dev)
{
	return 0;
}

/**
 * pcibios_disable_device - disable arch specific PCI resources for device dev
 * @dev: the PCI device to disable
+1 −0
Original line number Diff line number Diff line
@@ -1592,6 +1592,7 @@ void pcibios_disable_device(struct pci_dev *dev);
void pcibios_set_master(struct pci_dev *dev);
int pcibios_set_pcie_reset_state(struct pci_dev *dev,
				 enum pcie_reset_state state);
int pcibios_add_device(struct pci_dev *dev);

#ifdef CONFIG_PCI_MMCONFIG
extern void __init pci_mmcfg_early_init(void);