• Home
  • Raw
  • Download

Lines Matching +full:cfg +full:- +full:space

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Code borrowed from powerpc/kernel/pci-common.c
15 #include <linux/pci-acpi.h>
16 #include <linux/pci-ecam.h>
33 * raw_pci_read/write - Platform-specific PCI config space access.
42 return b->ops->read(b, devfn, reg, len, val); in raw_pci_read()
52 return b->ops->write(b, devfn, reg, len, val); in raw_pci_write()
59 return dev_to_node(&bus->dev); in pcibus_to_node()
69 struct pci_config_window *cfg; /* config space mapping */ member
74 struct pci_config_window *cfg = bus->sysdata; in acpi_pci_bus_find_domain_nr() local
75 struct acpi_device *adev = to_acpi_device(cfg->parent); in acpi_pci_bus_find_domain_nr()
78 return root->segment; in acpi_pci_bus_find_domain_nr()
83 struct pci_config_window *cfg; in pcibios_root_bridge_prepare() local
90 cfg = bridge->bus->sysdata; in pcibios_root_bridge_prepare()
93 * On Hyper-V there is no corresponding ACPI device for a root bridge, in pcibios_root_bridge_prepare()
94 * therefore ->parent is set as NULL by the driver. And set 'adev' as in pcibios_root_bridge_prepare()
97 if (!cfg->parent) in pcibios_root_bridge_prepare()
100 adev = to_acpi_device(cfg->parent); in pcibios_root_bridge_prepare()
102 bus_dev = &bridge->bus->dev; in pcibios_root_bridge_prepare()
104 ACPI_COMPANION_SET(&bridge->dev, adev); in pcibios_root_bridge_prepare()
116 resource_list_for_each_entry_safe(entry, tmp, &ci->resources) { in pci_acpi_root_prepare_resources()
117 if (!(entry->res->flags & IORESOURCE_WINDOW)) in pci_acpi_root_prepare_resources()
124 * Lookup the bus range for the domain in MCFG, and set up config space
130 struct device *dev = &root->device->dev; in pci_acpi_setup_ecam_mapping()
131 struct resource *bus_res = &root->secondary; in pci_acpi_setup_ecam_mapping()
132 u16 seg = root->segment; in pci_acpi_setup_ecam_mapping()
136 struct pci_config_window *cfg; in pci_acpi_setup_ecam_mapping() local
148 dev_name(&adev->dev)); in pci_acpi_setup_ecam_mapping()
153 cfg = pci_ecam_create(dev, &cfgres, bus_res, ecam_ops); in pci_acpi_setup_ecam_mapping()
154 if (IS_ERR(cfg)) { in pci_acpi_setup_ecam_mapping()
156 PTR_ERR(cfg)); in pci_acpi_setup_ecam_mapping()
160 return cfg; in pci_acpi_setup_ecam_mapping()
169 pci_ecam_free(ri->cfg); in pci_acpi_generic_release_info()
170 kfree(ci->ops); in pci_acpi_generic_release_info()
192 ri->cfg = pci_acpi_setup_ecam_mapping(root); in pci_acpi_scan_root()
193 if (!ri->cfg) { in pci_acpi_scan_root()
199 root_ops->release_info = pci_acpi_generic_release_info; in pci_acpi_scan_root()
200 root_ops->prepare_resources = pci_acpi_root_prepare_resources; in pci_acpi_scan_root()
201 root_ops->pci_ops = (struct pci_ops *)&ri->cfg->ops->pci_ops; in pci_acpi_scan_root()
202 bus = acpi_pci_root_create(root, root_ops, &ri->common, ri->cfg); in pci_acpi_scan_root()
208 if (host->preserve_config) in pci_acpi_scan_root()
217 list_for_each_entry(child, &bus->children, node) in pci_acpi_scan_root()