ACPICA: Disassembler: Add support to decode _HID and _CID values.
authorBob Moore <robert.moore@intel.com>
Fri, 4 Apr 2014 04:37:35 +0000 (12:37 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 20 Apr 2014 20:59:37 +0000 (22:59 +0200)
For _HID and _CID, the disassembler will emit a string that describes
the device if the _HID/_CID value is recognized. acpihelp updated also.
acpihelp will now search for a specific ID as well as displaying
the list of "known" (to ACPICA) IDs.

This patch does not affect Linux kernel behavior as the disassembler
and the acpihelp are not shipped with it.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/acglobal.h
drivers/acpi/acpica/aclocal.h
drivers/acpi/acpica/acutils.h

index 11ce629359efa7ebcaebc7479f682ba081341860..71bb5b50c656912bd94534b0fd42d3cc88fc67af 100644 (file)
@@ -509,5 +509,6 @@ ACPI_INIT_GLOBAL(ACPI_FILE, acpi_gbl_debug_file, NULL);
  ****************************************************************************/
 
 extern const struct ah_predefined_name asl_predefined_info[];
+extern const AH_DEVICE_ID asl_device_ids[];
 
 #endif                         /* __ACGLOBAL_H__ */
index 52a21dafb54039ca3c3d62bb22328acfb7a3321a..f68cb602dc23eeb41cc8ff3deb4a73fd500758a5 100644 (file)
@@ -733,7 +733,8 @@ union acpi_parse_value {
 #define ACPI_DASM_MATCHOP               0x06   /* Parent opcode is a Match() operator */
 #define ACPI_DASM_LNOT_PREFIX           0x07   /* Start of a Lnot_equal (etc.) pair of opcodes */
 #define ACPI_DASM_LNOT_SUFFIX           0x08   /* End  of a Lnot_equal (etc.) pair of opcodes */
-#define ACPI_DASM_IGNORE                0x09   /* Not used at this time */
+#define ACPI_DASM_HID_STRING            0x09   /* String is a _HID or _CID */
+#define ACPI_DASM_IGNORE                0x0A   /* Not used at this time */
 
 /*
  * Generic operation (for example:  If, While, Store)
@@ -1147,4 +1148,9 @@ struct ah_predefined_name {
 #endif
 };
 
+struct ah_device_id {
+       char *name;
+       char *description;
+};
+
 #endif                         /* __ACLOCAL_H__ */
index ceeec0b7ccb1764b1e8bc1bd4b7e91ef1f7b372c..532861001e065ddd988d286eb304e1f0da688590 100644 (file)
@@ -737,4 +737,11 @@ acpi_ut_method_error(const char *module_name,
                     struct acpi_namespace_node *node,
                     const char *path, acpi_status lookup_status);
 
+/*
+ * Utility functions for ACPI names and IDs
+ */
+const struct ah_predefined_name *acpi_ah_match_predefined_name(char *nameseg);
+
+const AH_DEVICE_ID *acpi_ah_match_hardware_id(char *hid);
+
 #endif                         /* _ACUTILS_H */