Lines Matching +full:parent +full:- +full:locked

1 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
4 * Module Name: evrgnini- ACPI address_space (op_region) init
6 * Copyright (C) 2000 - 2023, Intel Corp.
23 * PARAMETERS: handle - Region we are interested in
24 * function - Start or stop
25 * handler_context - Address space handler context
26 * region_context - Region specific context
52 while (local_region_context->first_mm) { in acpi_ev_system_memory_region_setup()
53 mm = local_region_context->first_mm; in acpi_ev_system_memory_region_setup()
54 local_region_context->first_mm = mm->next_mm; in acpi_ev_system_memory_region_setup()
55 acpi_os_unmap_memory(mm->logical_address, in acpi_ev_system_memory_region_setup()
56 mm->length); in acpi_ev_system_memory_region_setup()
75 local_region_context->length = region_desc->region.length; in acpi_ev_system_memory_region_setup()
76 local_region_context->address = region_desc->region.address; in acpi_ev_system_memory_region_setup()
86 * PARAMETERS: handle - Region we are interested in
87 * function - Start or stop
88 * handler_context - Address space handler context
89 * region_context - Region specific context
117 * PARAMETERS: handle - Region we are interested in
118 * function - Start or stop
119 * handler_context - Address space handler context
120 * region_context - Region specific context
126 * MUTEX: Assumes namespace is not locked
147 handler_obj = region_obj->region.handler; in acpi_ev_pci_config_region_setup()
167 parent_node = region_obj->region.node->parent; in acpi_ev_pci_config_region_setup()
179 * to scan upward for a PCI Root bridge and re-associate the op_region in acpi_ev_pci_config_region_setup()
182 if (handler_obj->address_space.node == acpi_gbl_root_node) { in acpi_ev_pci_config_region_setup()
184 /* Start search from the parent object */ in acpi_ev_pci_config_region_setup()
214 pci_root_node = pci_root_node->parent; in acpi_ev_pci_config_region_setup()
219 pci_root_node = handler_obj->address_space.node; in acpi_ev_pci_config_region_setup()
226 if (region_obj->region.flags & AOPOBJ_SETUP_COMPLETE) { in acpi_ev_pci_config_region_setup()
241 * Find the parent device object. (This allows the operation region to be in acpi_ev_pci_config_region_setup()
244 pci_device_node = region_obj->region.node; in acpi_ev_pci_config_region_setup()
245 while (pci_device_node && (pci_device_node->type != ACPI_TYPE_DEVICE)) { in acpi_ev_pci_config_region_setup()
246 pci_device_node = pci_device_node->parent; in acpi_ev_pci_config_region_setup()
256 * contained in the parent's scope. in acpi_ev_pci_config_region_setup()
266 pci_id->device = ACPI_HIWORD(ACPI_LODWORD(pci_value)); in acpi_ev_pci_config_region_setup()
267 pci_id->function = ACPI_LOWORD(ACPI_LODWORD(pci_value)); in acpi_ev_pci_config_region_setup()
275 pci_id->segment = ACPI_LOWORD(pci_value); in acpi_ev_pci_config_region_setup()
283 pci_id->bus = ACPI_LOWORD(pci_value); in acpi_ev_pci_config_region_setup()
290 region_obj->region.node); in acpi_ev_pci_config_region_setup()
304 * PARAMETERS: node - Device node being examined
306 * RETURN: TRUE if device is a PCI/PCI-Express Root Bridge
328 match = acpi_ut_is_pci_root_bridge(hid->string); in acpi_ev_is_pci_root_bridge()
344 for (i = 0; i < cid->count; i++) { in acpi_ev_is_pci_root_bridge()
345 if (acpi_ut_is_pci_root_bridge(cid->ids[i].string)) { in acpi_ev_is_pci_root_bridge()
359 * PARAMETERS: handle - Region we are interested in
360 * function - Start or stop
361 * handler_context - Address space handler context
362 * region_context - Region specific context
368 * MUTEX: Assumes namespace is not locked
386 * PARAMETERS: handle - Region we are interested in
387 * function - Start or stop
388 * handler_context - Address space handler context
389 * region_context - Region specific context
395 * MUTEX: Assumes namespace is not locked
413 * PARAMETERS: handle - Region we are interested in
414 * function - Start or stop
415 * handler_context - Address space handler context
416 * region_context - Region specific context
422 * MUTEX: Assumes namespace is not locked
455 local_region_context->pointer = region_desc->region.pointer; in acpi_ev_data_table_region_setup()
465 * PARAMETERS: handle - Region we are interested in
466 * function - Start or stop
467 * handler_context - Address space handler context
468 * region_context - Region specific context
496 * PARAMETERS: region_obj - Region we are initializing
522 * Though this may not be compliant to the de-facto standard, the
541 if (region_obj->common.flags & AOPOBJ_OBJECT_INITIALIZED) { in acpi_ev_initialize_region()
545 region_obj->common.flags |= AOPOBJ_OBJECT_INITIALIZED; in acpi_ev_initialize_region()
547 node = region_obj->region.node->parent; in acpi_ev_initialize_region()
548 space_id = region_obj->region.space_id; in acpi_ev_initialize_region()
551 * The following loop depends upon the root Node having no parent in acpi_ev_initialize_region()
552 * ie: acpi_gbl_root_node->Parent being set to NULL in acpi_ev_initialize_region()
564 switch (node->type) { in acpi_ev_initialize_region()
569 handler_obj = obj_desc->common_notify.handler; in acpi_ev_initialize_region()
607 node = node->parent; in acpi_ev_initialize_region()