Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b7b4119 authored by Len Brown's avatar Len Brown
Browse files

Pull sgi into test branch

parents 9774f338 0f0fe1a0
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
@@ -48,6 +48,50 @@
#define _COMPONENT          ACPI_NAMESPACE
ACPI_MODULE_NAME("nsxfobj")

/*******************************************************************************
 *
 * FUNCTION:    acpi_get_id
 *
 * PARAMETERS:  Handle          - Handle of object whose id is desired
 *              ret_id          - Where the id will be placed
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This routine returns the owner id associated with a handle
 *
 ******************************************************************************/
acpi_status acpi_get_id(acpi_handle handle, acpi_owner_id * ret_id)
{
	struct acpi_namespace_node *node;
	acpi_status status;

	/* Parameter Validation */

	if (!ret_id) {
		return (AE_BAD_PARAMETER);
	}

	status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
	if (ACPI_FAILURE(status)) {
		return (status);
	}

	/* Convert and validate the handle */

	node = acpi_ns_map_handle_to_node(handle);
	if (!node) {
		(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
		return (AE_BAD_PARAMETER);
	}

	*ret_id = node->owner_id;

	status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
	return (status);
}

ACPI_EXPORT_SYMBOL(acpi_get_id)

/*******************************************************************************
 *
 * FUNCTION:    acpi_get_type
+53 −1
Original line number Diff line number Diff line
@@ -123,7 +123,6 @@ acpi_status acpi_load_tables(void)

ACPI_EXPORT_SYMBOL(acpi_load_tables)

#ifdef ACPI_FUTURE_USAGE
/*******************************************************************************
 *
 * FUNCTION:    acpi_load_table
@@ -219,6 +218,59 @@ acpi_status acpi_load_table(struct acpi_table_header *table_ptr)

ACPI_EXPORT_SYMBOL(acpi_load_table)

/*******************************************************************************
 *
 * FUNCTION:    acpi_unload_table_id
 *
 * PARAMETERS:  table_type    - Type of table to be unloaded
 *              id            - Owner ID of the table to be removed.
 *
 * RETURN:      Status
 *
 * DESCRIPTION: This routine is used to force the unload of a table (by id)
 *
 ******************************************************************************/
acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id)
{
	struct acpi_table_desc *table_desc;
	acpi_status status;

	ACPI_FUNCTION_TRACE(acpi_unload_table);

	/* Parameter validation */
	if (table_type > ACPI_TABLE_ID_MAX)
		return_ACPI_STATUS(AE_BAD_PARAMETER);

	/* Find table from the requested type list */
	table_desc = acpi_gbl_table_lists[table_type].next;
	while (table_desc && table_desc->owner_id != id)
		table_desc = table_desc->next;

	if (!table_desc)
		return_ACPI_STATUS(AE_NOT_EXIST);

	/*
	 * Delete all namespace objects owned by this table. Note that these
	 * objects can appear anywhere in the namespace by virtue of the AML
	 * "Scope" operator. Thus, we need to track ownership by an ID, not
	 * simply a position within the hierarchy
	 */
	acpi_ns_delete_namespace_by_owner(table_desc->owner_id);

	status = acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
	if (ACPI_FAILURE(status))
		return_ACPI_STATUS(status);

	(void)acpi_tb_uninstall_table(table_desc);

	(void)acpi_ut_release_mutex(ACPI_MTX_TABLES);

	return_ACPI_STATUS(AE_OK);
}

ACPI_EXPORT_SYMBOL(acpi_unload_table_id)

#ifdef ACPI_FUTURE_USAGE
/*******************************************************************************
 *
 * FUNCTION:    acpi_unload_table
+5 −2
Original line number Diff line number Diff line
@@ -97,11 +97,12 @@ acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address);

acpi_status acpi_load_tables(void);

#ifdef ACPI_FUTURE_USAGE
acpi_status acpi_load_table(struct acpi_table_header *table_ptr);

acpi_status acpi_unload_table(acpi_table_type table_type);
acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id);

#ifdef ACPI_FUTURE_USAGE
acpi_status acpi_unload_table(acpi_table_type table_type);
acpi_status
acpi_get_table_header(acpi_table_type table_type,
		      u32 instance, struct acpi_table_header *out_table_header);
@@ -180,6 +181,8 @@ acpi_get_next_object(acpi_object_type type,

acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type);

acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type);

acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);

/*