Lines Matching refs:region
40 * an installed default region handler.
81 * PARAMETERS: region_obj - Internal region object
84 * region_offset - Where in the region to read or write
91 * DESCRIPTION: Dispatch an address space or operation region access to
94 * NOTE: During early initialization, we always install the default region
96 * region address spaces are always available as per the ACPI specification.
126 /* Ensure that there is a handler associated with this region */
128 handler_desc = region_obj->region.handler;
132 acpi_ut_get_node_name(region_obj->region.node),
134 acpi_ut_get_region_name(region_obj->region.
145 * It may be the case that the region has never been initialized.
148 if (!(region_obj->region.flags & AOPOBJ_SETUP_COMPLETE)) {
150 /* This region has not been initialized yet, do it */
158 "No init routine for region(%p) [%s]",
160 acpi_ut_get_region_name(region_obj->region.
165 if (region_obj->region.space_id == ACPI_ADR_SPACE_PLATFORM_COMM) {
171 ctx->length = (u16)region_obj->region.length;
172 ctx->subspace_id = (u8)region_obj->region.address;
175 if (region_obj->region.space_id ==
180 ctx->length = region_obj->region.length;
181 ctx->offset = region_obj->region.address;
185 * We must exit the interpreter because the region setup will
187 * for this region)
202 "During region initialization: [%s]",
204 region.
211 if (!(region_obj->region.flags & AOPOBJ_SETUP_COMPLETE)) {
212 region_obj->region.flags |= AOPOBJ_SETUP_COMPLETE;
216 * the handler for this particular region
228 address = (region_obj->region.address + region_offset);
232 ®ion_obj->region.handler->address_space, handler,
234 acpi_ut_get_region_name(region_obj->region.
266 if ((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS ||
267 region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) &&
284 if (region_obj->region.space_id == ACPI_ADR_SPACE_GPIO) {
301 acpi_ut_get_region_name(region_obj->region.
308 if ((region_obj->region.space_id == ACPI_ADR_SPACE_EC) &&
337 * DESCRIPTION: Break the association between the handler and the region
363 /* Get the address handler from the region object */
365 handler_obj = region_obj->region.handler;
368 /* This region has no handler, all done */
373 /* Find this region in the handler's list */
390 *last_obj_ptr = obj_desc->region.next;
391 obj_desc->region.next = NULL; /* Must clear field */
401 /* Now stop region accesses by executing the _REG method */
408 "from region _REG, [%s]",
410 (region_obj->region.space_id)));
422 * If the region has been activated, call the setup handler with
425 if (region_obj->region.flags & AOPOBJ_SETUP_COMPLETE) {
445 "from region handler - deactivate, [%s]",
447 (region_obj->region.
451 region_obj->region.flags &=
456 * Remove handler reference in the region
458 * NOTE: this doesn't mean that the region goes away, the region
461 * If the region is on the handler's list, this must be the
462 * region's handler
464 region_obj->region.handler = NULL;
472 last_obj_ptr = &obj_desc->region.next;
473 obj_desc = obj_desc->region.next;
479 "Circular handler list in region object %p",
485 /* If we get here, the region was not in the handler's region list */
488 "Cannot remove region %p from address handler %p\n",
504 * DESCRIPTION: Create the association between the handler and the region
517 /* Install the region's handler */
519 if (region_obj->region.handler) {
525 acpi_ut_get_node_name(region_obj->region.node),
527 acpi_ut_get_region_name(region_obj->region.
530 /* Link this region to the front of the handler's list */
532 region_obj->region.next = handler_obj->address_space.region_list;
534 region_obj->region.handler = handler_obj;
549 * DESCRIPTION: Execute _REG method for a region
568 region_obj->region.handler == NULL) {
578 * Find any "_REG" method associated with this region definition.
582 node = region_obj->region.node->parent;
589 * region definition. This will be executed when the handler is
623 * Operation region space ID Same value as region_obj->Region.space_id
630 acpi_ut_create_integer_object((u64)region_obj->region.space_id);
726 * no region.
746 * DESCRIPTION: Run _REG method for region objects of the requested spaceID
788 if (obj_desc->region.space_id != info->space_id) {
790 /* This region is for a different address space, just ignore it */
810 * device. This is a _REG method that has no corresponding region
859 (next_node->object->region.space_id == space_id)) {