Lines Matching refs:root

60  * acpi_is_root_bridge - determine whether an ACPI CA node is a PCI root bridge
144 static void decode_osc_bits(struct acpi_pci_root *root, char *msg, u32 word,
157 dev_info(&root->device->dev, "_OSC: %s [%s]\n", msg, buf);
160 static void decode_osc_support(struct acpi_pci_root *root, char *msg, u32 word)
162 decode_osc_bits(root, msg, word, pci_osc_support_bit,
166 static void decode_osc_control(struct acpi_pci_root *root, char *msg, u32 word)
168 decode_osc_bits(root, msg, word, pci_osc_control_bit,
193 static acpi_status acpi_pci_query_osc(struct acpi_pci_root *root,
201 support |= root->osc_support_set;
207 capbuf[OSC_CONTROL_DWORD] = *control | root->osc_control_set;
210 capbuf[OSC_CONTROL_DWORD] = root->osc_control_set;
213 status = acpi_pci_run_osc(root->device->handle, capbuf, &result);
215 root->osc_support_set = support;
222 static acpi_status acpi_pci_osc_support(struct acpi_pci_root *root, u32 flags)
227 status = acpi_pci_query_osc(root, flags, NULL);
234 struct acpi_pci_root *root;
241 root = acpi_driver_data(device);
243 return root;
273 struct acpi_pci_root *root;
277 * Walk up the ACPI CA namespace until we reach a PCI root bridge.
294 root = acpi_pci_find_root(phandle);
295 if (!root)
298 pbus = root->bus;
302 * original handle. Assumes that everything between the PCI root
340 * acpi_pci_osc_control_set - Request control of PCI root _OSC features.
341 * @handle: ACPI handle of a PCI root bridge (or PCIe Root Complex).
356 struct acpi_pci_root *root;
367 root = acpi_pci_find_root(handle);
368 if (!root)
373 *mask = ctrl | root->osc_control_set;
375 if ((root->osc_control_set & ctrl) == ctrl)
380 status = acpi_pci_query_osc(root, root->osc_support_set, mask);
385 decode_osc_control(root, "platform does not support",
391 decode_osc_control(root, "not requesting control; platform does not support",
398 capbuf[OSC_SUPPORT_DWORD] = root->osc_support_set;
402 root->osc_control_set = *mask;
409 static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
414 struct acpi_device *device = root->device;
423 root->osc_control_set = ~OSC_PCI_EXPRESS_PME_CONTROL;
424 decode_osc_control(root, "OS assumes control of",
425 root->osc_control_set);
444 decode_osc_support(root, "OS supports", support);
445 status = acpi_pci_osc_support(root, support);
465 decode_osc_support(root, "not requesting OS control; OS requires",
498 decode_osc_control(root, "OS now controls", control);
509 decode_osc_control(root, "OS requested", requested);
510 decode_osc_control(root, "platform willing to grant", control);
519 * root scan.
531 struct acpi_pci_root *root;
537 root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL);
538 if (!root)
551 root->secondary.flags = IORESOURCE_BUS;
552 status = try_get_root_bridge_busnr(handle, &root->secondary);
560 root->secondary.end = 0xFF;
566 root->secondary.start = bus;
568 root->secondary.start = 0;
576 root->device = device;
577 root->segment = segment & 0xFFFF;
580 device->driver_data = root;
589 root->segment, &root->secondary);
591 root->mcfg_addr = acpi_pci_root_get_mcfg_addr(handle);
594 negotiate_os_control(root, &no_aspm, is_pcie);
603 * Must do this prior to any attempt to bind the root device, as the
605 * thus the root bridge's pci_dev does not exist).
607 root->bus = pci_acpi_scan_root(root);
608 if (!root->bus) {
611 root->segment, (unsigned int)root->secondary.start);
621 device_set_wakeup_capable(root->bus->bridge, device->wakeup.flags.valid);
624 pcibios_resource_survey_bus(root->bus);
625 pci_assign_unassigned_root_bus_resources(root->bus);
636 acpi_ioapic_add(root->device->handle);
640 pci_bus_add_devices(root->bus);
648 kfree(root);
654 struct acpi_pci_root *root = acpi_driver_data(device);
658 pci_stop_root_bus(root->bus);
660 pci_ioapic_remove(root);
661 device_set_wakeup_capable(root->bus->bridge, false);
664 pci_remove_root_bus(root->bus);
665 WARN_ON(acpi_ioapic_remove(root));
671 kfree(root);
684 struct resource *res1, *res2, *root = NULL;
688 root = (type & IORESOURCE_MEM) ? &iomem_resource : &ioport_resource;
700 end = min(res1->end, root->end);
814 struct resource *res, *conflict, *root = NULL;
819 root = &iomem_resource;
821 root = &ioport_resource;
829 if (res == root)
832 conflict = insert_resource_conflict(root, res);
877 struct pci_bus *acpi_pci_root_create(struct acpi_pci_root *root,
882 int ret, busnum = root->secondary.start;
883 struct acpi_device *device = root->device;
889 info->root = root;
894 root->segment, busnum);
906 pci_add_resource(&info->resources, &root->secondary);
913 if (!(root->osc_control_set & OSC_PCI_EXPRESS_NATIVE_HP_CONTROL))
915 if (!(root->osc_control_set & OSC_PCI_SHPC_NATIVE_HP_CONTROL))
917 if (!(root->osc_control_set & OSC_PCI_EXPRESS_AER_CONTROL))
919 if (!(root->osc_control_set & OSC_PCI_EXPRESS_PME_CONTROL))
921 if (!(root->osc_control_set & OSC_PCI_EXPRESS_LTR_CONTROL))
923 if (!(root->osc_control_set & OSC_PCI_EXPRESS_DPC_CONTROL))