Lines Matching refs:root
161 static void decode_osc_bits(struct acpi_pci_root *root, char *msg, u32 word, in decode_osc_bits() argument
174 dev_info(&root->device->dev, "_OSC: %s [%s]\n", msg, buf); in decode_osc_bits()
177 static void decode_osc_support(struct acpi_pci_root *root, char *msg, u32 word) in decode_osc_support() argument
179 decode_osc_bits(root, msg, word, pci_osc_support_bit, in decode_osc_support()
183 static void decode_osc_control(struct acpi_pci_root *root, char *msg, u32 word) in decode_osc_control() argument
185 decode_osc_bits(root, msg, word, pci_osc_control_bit, in decode_osc_control()
210 static acpi_status acpi_pci_query_osc(struct acpi_pci_root *root, in acpi_pci_query_osc() argument
218 support |= root->osc_support_set; in acpi_pci_query_osc()
224 capbuf[OSC_CONTROL_DWORD] = *control | root->osc_control_set; in acpi_pci_query_osc()
227 capbuf[OSC_CONTROL_DWORD] = root->osc_control_set; in acpi_pci_query_osc()
230 status = acpi_pci_run_osc(root->device->handle, capbuf, &result); in acpi_pci_query_osc()
232 root->osc_support_set = support; in acpi_pci_query_osc()
239 static acpi_status acpi_pci_osc_support(struct acpi_pci_root *root, u32 flags) in acpi_pci_osc_support() argument
244 status = acpi_pci_query_osc(root, flags, NULL); in acpi_pci_osc_support()
251 struct acpi_pci_root *root; in acpi_pci_find_root() local
258 root = acpi_driver_data(device); in acpi_pci_find_root()
260 return root; in acpi_pci_find_root()
290 struct acpi_pci_root *root; in acpi_get_pci_dev() local
311 root = acpi_pci_find_root(phandle); in acpi_get_pci_dev()
312 if (!root) in acpi_get_pci_dev()
315 pbus = root->bus; in acpi_get_pci_dev()
373 struct acpi_pci_root *root; in acpi_pci_osc_control_set() local
384 root = acpi_pci_find_root(handle); in acpi_pci_osc_control_set()
385 if (!root) in acpi_pci_osc_control_set()
390 *mask = ctrl | root->osc_control_set; in acpi_pci_osc_control_set()
392 if ((root->osc_control_set & ctrl) == ctrl) in acpi_pci_osc_control_set()
397 status = acpi_pci_query_osc(root, root->osc_support_set, mask); in acpi_pci_osc_control_set()
402 decode_osc_control(root, "platform does not support", in acpi_pci_osc_control_set()
408 decode_osc_control(root, "not requesting control; platform does not support", in acpi_pci_osc_control_set()
415 capbuf[OSC_SUPPORT_DWORD] = root->osc_support_set; in acpi_pci_osc_control_set()
419 root->osc_control_set = *mask; in acpi_pci_osc_control_set()
426 static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm) in negotiate_os_control() argument
430 struct acpi_device *device = root->device; in negotiate_os_control()
440 root->osc_control_set = ~OSC_PCI_EXPRESS_PME_CONTROL; in negotiate_os_control()
441 decode_osc_control(root, "OS assumes control of", in negotiate_os_control()
442 root->osc_control_set); in negotiate_os_control()
458 decode_osc_support(root, "OS supports", support); in negotiate_os_control()
459 status = acpi_pci_osc_support(root, support); in negotiate_os_control()
473 decode_osc_support(root, "not requesting OS control; OS requires", in negotiate_os_control()
494 decode_osc_control(root, "OS now controls", control); in negotiate_os_control()
505 decode_osc_control(root, "OS requested", requested); in negotiate_os_control()
506 decode_osc_control(root, "platform willing to grant", control); in negotiate_os_control()
527 struct acpi_pci_root *root; in acpi_pci_root_add() local
532 root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL); in acpi_pci_root_add()
533 if (!root) in acpi_pci_root_add()
546 root->secondary.flags = IORESOURCE_BUS; in acpi_pci_root_add()
547 status = try_get_root_bridge_busnr(handle, &root->secondary); in acpi_pci_root_add()
555 root->secondary.end = 0xFF; in acpi_pci_root_add()
561 root->secondary.start = bus; in acpi_pci_root_add()
563 root->secondary.start = 0; in acpi_pci_root_add()
571 root->device = device; in acpi_pci_root_add()
572 root->segment = segment & 0xFFFF; in acpi_pci_root_add()
575 device->driver_data = root; in acpi_pci_root_add()
584 root->segment, &root->secondary); in acpi_pci_root_add()
586 root->mcfg_addr = acpi_pci_root_get_mcfg_addr(handle); in acpi_pci_root_add()
588 negotiate_os_control(root, &no_aspm); in acpi_pci_root_add()
601 root->bus = pci_acpi_scan_root(root); in acpi_pci_root_add()
602 if (!root->bus) { in acpi_pci_root_add()
605 root->segment, (unsigned int)root->secondary.start); in acpi_pci_root_add()
616 device_set_run_wake(root->bus->bridge, true); in acpi_pci_root_add()
619 pcibios_resource_survey_bus(root->bus); in acpi_pci_root_add()
620 pci_assign_unassigned_root_bus_resources(root->bus); in acpi_pci_root_add()
621 acpi_ioapic_add(root); in acpi_pci_root_add()
625 pci_bus_add_devices(root->bus); in acpi_pci_root_add()
633 kfree(root); in acpi_pci_root_add()
639 struct acpi_pci_root *root = acpi_driver_data(device); in acpi_pci_root_remove() local
643 pci_stop_root_bus(root->bus); in acpi_pci_root_remove()
645 WARN_ON(acpi_ioapic_remove(root)); in acpi_pci_root_remove()
647 device_set_run_wake(root->bus->bridge, false); in acpi_pci_root_remove()
650 pci_remove_root_bus(root->bus); in acpi_pci_root_remove()
656 kfree(root); in acpi_pci_root_remove()