// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /****************************************************************************** * * Module Name: utids - support for device Ids - HID, UID, CID, SUB, CLS * * Copyright (C) 2000 - 2023, Intel Corp. * *****************************************************************************/ #include <acpi/acpi.h> #include "accommon.h" #include "acinterp.h" #define _COMPONENT … ACPI_MODULE_NAME("utids") /******************************************************************************* * * FUNCTION: acpi_ut_execute_HID * * PARAMETERS: device_node - Node for the device * return_id - Where the string HID is returned * * RETURN: Status * * DESCRIPTION: Executes the _HID control method that returns the hardware * ID of the device. The HID is either an 32-bit encoded EISAID * Integer or a String. A string is always returned. An EISAID * is converted to a string. * * NOTE: Internal function, no parameter validation * ******************************************************************************/ acpi_status acpi_ut_execute_HID(struct acpi_namespace_node *device_node, struct acpi_pnp_device_id **return_id) { … } /******************************************************************************* * * FUNCTION: acpi_ut_execute_UID * * PARAMETERS: device_node - Node for the device * return_id - Where the string UID is returned * * RETURN: Status * * DESCRIPTION: Executes the _UID control method that returns the unique * ID of the device. The UID is either a 64-bit Integer (NOT an * EISAID) or a string. Always returns a string. A 64-bit integer * is converted to a decimal string. * * NOTE: Internal function, no parameter validation * ******************************************************************************/ acpi_status acpi_ut_execute_UID(struct acpi_namespace_node *device_node, struct acpi_pnp_device_id **return_id) { … } /******************************************************************************* * * FUNCTION: acpi_ut_execute_CID * * PARAMETERS: device_node - Node for the device * return_cid_list - Where the CID list is returned * * RETURN: Status, list of CID strings * * DESCRIPTION: Executes the _CID control method that returns one or more * compatible hardware IDs for the device. * * NOTE: Internal function, no parameter validation * * A _CID method can return either a single compatible ID or a package of * compatible IDs. Each compatible ID can be one of the following: * 1) Integer (32 bit compressed EISA ID) or * 2) String (PCI ID format, e.g. "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss") * * The Integer CIDs are converted to string format by this function. * ******************************************************************************/ acpi_status acpi_ut_execute_CID(struct acpi_namespace_node *device_node, struct acpi_pnp_device_id_list **return_cid_list) { … } /******************************************************************************* * * FUNCTION: acpi_ut_execute_CLS * * PARAMETERS: device_node - Node for the device * return_id - Where the _CLS is returned * * RETURN: Status * * DESCRIPTION: Executes the _CLS control method that returns PCI-defined * class code of the device. The _CLS value is always a package * containing PCI class information as a list of integers. * The returned string has format "BBSSPP", where: * BB = Base-class code * SS = Sub-class code * PP = Programming Interface code * ******************************************************************************/ acpi_status acpi_ut_execute_CLS(struct acpi_namespace_node *device_node, struct acpi_pnp_device_id **return_id) { … }