• B
    PCI: Add pci_configure_device() during enumeration · 6cd33649
    Bjorn Helgaas 提交于
    Some platforms can tell the OS how to configure PCI devices, e.g., how to
    set cache line size, error reporting enables, etc.  ACPI defines _HPP and
    _HPX methods for this purpose.
    
    This configuration was previously done by some of the hotplug drivers using
    pci_configure_slot().  But not all hotplug drivers did this, and per the
    spec (ACPI rev 5.0, sec 6.2.7), we can also do it for "devices not
    configured by the BIOS at system boot."
    
    Move this configuration into the PCI core by adding pci_configure_device()
    and calling it from pci_device_add(), so we do this for all devices as we
    enumerate them.
    
    This is based on pci_configure_slot(), which is used by hotplug drivers.
    I omitted:
    
      - pcie_bus_configure_settings() because it configures MPS and MRRS, which
        requires global knowledge of the fabric and must be done later, and
    
      - configuration of subordinate devices; that will happen when we call
        pci_device_add() for those devices.
    
    Because pci_configure_slot() was only done by hotplug drivers, this initial
    version of pci_configure_device() only configures hot-added devices,
    ignoring anything added during boot.
    Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
    Acked-by: NYinghai Lu <yinghai@kernel.org>
    6cd33649
probe.c 57.7 KB