Lines Matching refs:cfg
34 static void __init pci_mmconfig_remove(struct pci_mmcfg_region *cfg) in pci_mmconfig_remove() argument
36 if (cfg->res.parent) in pci_mmconfig_remove()
37 release_resource(&cfg->res); in pci_mmconfig_remove()
38 list_del(&cfg->list); in pci_mmconfig_remove()
39 kfree(cfg); in pci_mmconfig_remove()
44 struct pci_mmcfg_region *cfg, *tmp; in free_all_mmcfg() local
47 list_for_each_entry_safe(cfg, tmp, &pci_mmcfg_list, list) in free_all_mmcfg()
48 pci_mmconfig_remove(cfg); in free_all_mmcfg()
53 struct pci_mmcfg_region *cfg; in list_add_sorted() local
56 list_for_each_entry_rcu(cfg, &pci_mmcfg_list, list) { in list_add_sorted()
57 if (cfg->segment > new->segment || in list_add_sorted()
58 (cfg->segment == new->segment && in list_add_sorted()
59 cfg->start_bus >= new->start_bus)) { in list_add_sorted()
60 list_add_tail_rcu(&new->list, &cfg->list); in list_add_sorted()
118 struct pci_mmcfg_region *cfg; in pci_mmconfig_lookup() local
120 list_for_each_entry_rcu(cfg, &pci_mmcfg_list, list) in pci_mmconfig_lookup()
121 if (cfg->segment == segment && in pci_mmconfig_lookup()
122 cfg->start_bus <= bus && bus <= cfg->end_bus) in pci_mmconfig_lookup()
123 return cfg; in pci_mmconfig_lookup()
324 struct pci_mmcfg_region *cfg, *cfgx; in pci_mmcfg_check_end_bus_number() local
327 list_for_each_entry(cfg, &pci_mmcfg_list, list) { in pci_mmcfg_check_end_bus_number()
328 if (cfg->end_bus < cfg->start_bus) in pci_mmcfg_check_end_bus_number()
329 cfg->end_bus = 255; in pci_mmcfg_check_end_bus_number()
332 if (cfg->list.next == &pci_mmcfg_list) in pci_mmcfg_check_end_bus_number()
335 cfgx = list_entry(cfg->list.next, typeof(*cfg), list); in pci_mmcfg_check_end_bus_number()
336 if (cfg->end_bus >= cfgx->start_bus) in pci_mmcfg_check_end_bus_number()
337 cfg->end_bus = cfgx->start_bus - 1; in pci_mmcfg_check_end_bus_number()
446 struct pci_mmcfg_region *cfg, in is_mmconf_reserved() argument
449 u64 addr = cfg->res.start; in is_mmconf_reserved()
450 u64 size = resource_size(&cfg->res); in is_mmconf_reserved()
466 &cfg->res, method); in is_mmconf_reserved()
469 &cfg->res, method); in is_mmconf_reserved()
473 cfg->end_bus = cfg->start_bus + ((size>>20) - 1); in is_mmconf_reserved()
474 num_buses = cfg->end_bus - cfg->start_bus + 1; in is_mmconf_reserved()
475 cfg->res.end = cfg->res.start + in is_mmconf_reserved()
477 snprintf(cfg->name, PCI_MMCFG_RESOURCE_NAME_LEN, in is_mmconf_reserved()
479 cfg->segment, cfg->start_bus, cfg->end_bus); in is_mmconf_reserved()
485 &cfg->res, (unsigned long) cfg->address); in is_mmconf_reserved()
490 cfg->segment, cfg->start_bus, cfg->end_bus, in is_mmconf_reserved()
491 &cfg->res, (unsigned long) cfg->address); in is_mmconf_reserved()
498 struct pci_mmcfg_region *cfg, int early) in pci_mmcfg_check_reserved() argument
501 if (is_mmconf_reserved(is_acpi_reserved, cfg, dev, 0)) in pci_mmcfg_check_reserved()
508 &cfg->res); in pci_mmcfg_check_reserved()
513 &cfg->res); in pci_mmcfg_check_reserved()
528 return is_mmconf_reserved(e820_all_mapped, cfg, dev, 1); in pci_mmcfg_check_reserved()
535 struct pci_mmcfg_region *cfg; in pci_mmcfg_reject_broken() local
537 list_for_each_entry(cfg, &pci_mmcfg_list, list) { in pci_mmcfg_reject_broken()
538 if (pci_mmcfg_check_reserved(NULL, cfg, early) == 0) { in pci_mmcfg_reject_broken()
547 struct acpi_mcfg_allocation *cfg) in acpi_mcfg_check_entry() argument
551 if (cfg->address < 0xFFFFFFFF) in acpi_mcfg_check_entry()
564 "is above 4GB, ignored\n", cfg->pci_segment, in acpi_mcfg_check_entry()
565 cfg->start_bus_number, cfg->end_bus_number, cfg->address); in acpi_mcfg_check_entry()
572 struct acpi_mcfg_allocation *cfg_table, *cfg; in pci_parse_mcfg() local
596 cfg = &cfg_table[i]; in pci_parse_mcfg()
597 if (acpi_mcfg_check_entry(mcfg, cfg)) { in pci_parse_mcfg()
602 if (pci_mmconfig_add(cfg->pci_segment, cfg->start_bus_number, in pci_parse_mcfg()
603 cfg->end_bus_number, cfg->address) == NULL) { in pci_parse_mcfg()
620 struct pci_mmcfg_region *cfg; in pci_mmcfg_for_each_region() local
626 list_for_each_entry(cfg, &pci_mmcfg_list, list) { in pci_mmcfg_for_each_region()
627 rc = func(cfg->res.start, resource_size(&cfg->res), data); in pci_mmcfg_for_each_region()
646 const struct pci_mmcfg_region *cfg; in __pci_mmcfg_init() local
648 list_for_each_entry(cfg, &pci_mmcfg_list, list) { in __pci_mmcfg_init()
649 if (cfg->segment) in __pci_mmcfg_init()
651 pcibios_last_bus = cfg->end_bus; in __pci_mmcfg_init()
696 struct pci_mmcfg_region *cfg; in pci_mmcfg_late_insert_resources() local
709 list_for_each_entry(cfg, &pci_mmcfg_list, list) in pci_mmcfg_late_insert_resources()
710 if (!cfg->res.parent) in pci_mmcfg_late_insert_resources()
711 insert_resource(&iomem_resource, &cfg->res); in pci_mmcfg_late_insert_resources()
729 struct pci_mmcfg_region *cfg; in pci_mmconfig_insert() local
738 cfg = pci_mmconfig_lookup(seg, start); in pci_mmconfig_insert()
739 if (cfg) { in pci_mmconfig_insert()
740 if (cfg->end_bus < end) in pci_mmconfig_insert()
745 cfg->segment, cfg->start_bus, cfg->end_bus); in pci_mmconfig_insert()
756 cfg = pci_mmconfig_alloc(seg, start, end, addr); in pci_mmconfig_insert()
757 if (cfg == NULL) { in pci_mmconfig_insert()
760 } else if (!pci_mmcfg_check_reserved(dev, cfg, 0)) { in pci_mmconfig_insert()
762 &cfg->res); in pci_mmconfig_insert()
767 &cfg->res); in pci_mmconfig_insert()
773 &cfg->res, tmp->name, tmp); in pci_mmconfig_insert()
774 } else if (pci_mmcfg_arch_map(cfg)) { in pci_mmconfig_insert()
776 &cfg->res); in pci_mmconfig_insert()
778 list_add_sorted(cfg); in pci_mmconfig_insert()
780 &cfg->res, (unsigned long)addr); in pci_mmconfig_insert()
781 cfg = NULL; in pci_mmconfig_insert()
786 if (cfg) { in pci_mmconfig_insert()
787 if (cfg->res.parent) in pci_mmconfig_insert()
788 release_resource(&cfg->res); in pci_mmconfig_insert()
789 kfree(cfg); in pci_mmconfig_insert()
800 struct pci_mmcfg_region *cfg; in pci_mmconfig_delete() local
803 list_for_each_entry_rcu(cfg, &pci_mmcfg_list, list) in pci_mmconfig_delete()
804 if (cfg->segment == seg && cfg->start_bus == start && in pci_mmconfig_delete()
805 cfg->end_bus == end) { in pci_mmconfig_delete()
806 list_del_rcu(&cfg->list); in pci_mmconfig_delete()
808 pci_mmcfg_arch_unmap(cfg); in pci_mmconfig_delete()
809 if (cfg->res.parent) in pci_mmconfig_delete()
810 release_resource(&cfg->res); in pci_mmconfig_delete()
812 kfree(cfg); in pci_mmconfig_delete()