Lines Matching +full:pci +full:- +full:domain
2 * Low-Level PCI Support for PC
4 * (c) 1999--2000 Martin Mares <mj@ucw.cz>
8 #include <linux/pci.h>
9 #include <linux/pci-acpi.h>
33 int pcibios_last_bus = -1;
38 int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn, in raw_pci_read() argument
41 if (domain == 0 && reg < 256 && raw_pci_ops) in raw_pci_read()
42 return raw_pci_ops->read(domain, bus, devfn, reg, len, val); in raw_pci_read()
44 return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val); in raw_pci_read()
45 return -EINVAL; in raw_pci_read()
48 int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn, in raw_pci_write() argument
51 if (domain == 0 && reg < 256 && raw_pci_ops) in raw_pci_write()
52 return raw_pci_ops->write(domain, bus, devfn, reg, len, val); in raw_pci_write()
54 return raw_pci_ext_ops->write(domain, bus, devfn, reg, len, val); in raw_pci_write()
55 return -EINVAL; in raw_pci_write()
60 return raw_pci_read(pci_domain_nr(bus), bus->number, in pci_read()
66 return raw_pci_write(pci_domain_nr(bus), bus->number, in pci_write()
76 * This interrupt-safe spinlock protects all accesses to PCI configuration
84 printk(KERN_INFO "PCI: %s detected, can skip ISA alignment\n", d->ident); in can_skip_ioresource_align()
90 * Systems where PCI IO resource ISA alignment can be skipped
127 struct resource *rom_r = &dev->resource[PCI_ROM_RESOURCE]; in pcibios_fixup_device_resources()
138 bar_r = &dev->resource[bar]; in pcibios_fixup_device_resources()
139 if (bar_r->start == 0 && bar_r->end != 0) { in pcibios_fixup_device_resources()
140 bar_r->flags = 0; in pcibios_fixup_device_resources()
141 bar_r->end = 0; in pcibios_fixup_device_resources()
147 if (rom_r->parent) in pcibios_fixup_device_resources()
149 if (rom_r->start) { in pcibios_fixup_device_resources()
153 rom_r->start = rom_r->end = rom_r->flags = 0; in pcibios_fixup_device_resources()
167 list_for_each_entry(dev, &b->devices, bus_list) in pcibios_fixup_bus()
190 printk(KERN_INFO "PCI: %s detected, enabling pci=bfsort.\n", d->ident); in set_bf_sort()
200 if (dm->type != 0xB1) in read_dmi_type_b1()
213 * Enable renumbering of PCI bus# ranges to reach all PCI busses (Cardbus)
219 printk(KERN_INFO "%s detected: enabling PCI bus# renumbering" in assign_all_busses()
220 " (pci=assign-busses)\n", d->ident); in assign_all_busses()
227 printk(KERN_INFO "PCI: %s detected, enabling pci=pcie_scan_all\n", in set_scan_all()
228 d->ident); in set_scan_all()
236 * Laptops which need pci=assign-busses to see Cardbus cards
464 printk(KERN_ERR "PCI: OOM, skipping PCI bus %02x\n", busnum); in pcibios_scan_root()
467 sd->node = x86_pci_root_bus_node(busnum); in pcibios_scan_root()
469 printk(KERN_DEBUG "PCI: Probing PCI hardware (bus %02x)\n", busnum); in pcibios_scan_root()
484 * Set PCI cacheline size to that of the CPU if the CPU has reported it. in pcibios_set_cache_line_size()
487 * as quite a few PCI devices do not support smaller values. in pcibios_set_cache_line_size()
489 if (c->x86_clflush_size > 0) { in pcibios_set_cache_line_size()
490 pci_dfl_cache_line_size = c->x86_clflush_size >> 2; in pcibios_set_cache_line_size()
491 printk(KERN_DEBUG "PCI: pci_cache_line_size set to %d bytes\n", in pcibios_set_cache_line_size()
495 printk(KERN_DEBUG "PCI: Unknown cacheline size. Setting to 32 bytes\n"); in pcibios_set_cache_line_size()
502 printk(KERN_WARNING "PCI: System does not support PCI\n"); in pcibios_init()
587 } else if (!strcmp(str, "assign-busses")) { in pcibios_setup()
611 if (noioapicreroute != -1) in pcibios_setup()
615 if (noioapicreroute != -1) in pcibios_setup()
631 void add_dma_domain(struct dma_domain *domain) in add_dma_domain() argument
634 list_add(&domain->node, &dma_domain_list); in add_dma_domain()
639 void del_dma_domain(struct dma_domain *domain) in del_dma_domain() argument
642 list_del(&domain->node); in del_dma_domain()
649 struct dma_domain *domain; in set_dma_domain_ops() local
652 list_for_each_entry(domain, &dma_domain_list, node) { in set_dma_domain_ops()
653 if (pci_domain_nr(pdev->bus) == domain->domain_nr) { in set_dma_domain_ops()
654 pdev->dev.dma_ops = domain->dma_ops; in set_dma_domain_ops()
666 if (is_vmd(pdev->bus)) in set_dev_domain_options()
667 pdev->hotplug_user_indicators = 1; in set_dev_domain_options()
680 return -ENOMEM; in pcibios_add_device()
682 if (data->type == SETUP_PCI) { in pcibios_add_device()
685 if ((pci_domain_nr(dev->bus) == rom->segment) && in pcibios_add_device()
686 (dev->bus->number == rom->bus) && in pcibios_add_device()
687 (PCI_SLOT(dev->devfn) == rom->device) && in pcibios_add_device()
688 (PCI_FUNC(dev->devfn) == rom->function) && in pcibios_add_device()
689 (dev->vendor == rom->vendor) && in pcibios_add_device()
690 (dev->device == rom->devid)) { in pcibios_add_device()
691 dev->rom = pa_data + in pcibios_add_device()
693 dev->romlen = rom->pcilen; in pcibios_add_device()
696 pa_data = data->next; in pcibios_add_device()
725 if (atomic_dec_return(&dev->enable_cnt) >= 0) in pcibios_release_device()