Skip to contentSkip to conversation

ACPICA 20130626 Release

PATCH New Lv Zheng 1 participant 7 messages Jul 17, 2013

Subsystems (2)
lore
Share & tools
lore

Lv Zheng

author
#0 lore raw

cover ACPICA 20130626 Release

The 20130626 ACPICA kernel resident system updates is linuxized based on the pm/linux-next branch.

The patch set has passed a build/boot test on the following machines:
Dell Inspiron Mini 1010 (i386)
HP Compaq 8200 Elite SFF PC (x86-64)
With the following kernel configuration items enabled:
CONFIG_ACPI_AC
CONFIG_ACPI_BATTERY
CONFIG_ACPI_NUMA
CONFIG_ACPI_PROCESSOR
CONFIG_ACPI_THERMAL
CONFIG_ACPI_VIDEO
CONFIG_CPU_FREQ
CONFIG_I2C_SCMI
CONFIG_SENSORS_ACPI_POWER
CONFIG_PANASONIC_LAPTOP
CONFIG_XO15_EBOOK
No new divergences are introduced in this release.

Please review.

Bob Moore (5):
ACPICA: Comment update
ACPICA: TableManager: Export acpi_tb_scan_memory_for_rsdp()
ACPICA: Disassembler: Expand maximum output string length to 64K
ACPICA: Remove restriction of 256 maximum GPEs in any GPE block
ACPICA: Update version to 20130626

Jung-uk Kim (1):
ACPICA: Fix compiler warnings for casting issues (only some
compilers)

 drivers/acpi/acpica/actables.h  |    5 +++++
 drivers/acpi/acpica/acutils.h   |    2 +-
 drivers/acpi/acpica/evgpeinit.c |   11 -----------
 drivers/acpi/acpica/exdump.c    |    6 +++---
 drivers/acpi/acpica/nsxfname.c  |   11 +++++++++--
 drivers/acpi/acpica/tbxfroot.c  |    4 +---
 drivers/acpi/acpica/uteval.c    |    8 +++++++-
 drivers/acpi/acpica/utstring.c  |    5 +++--
 include/acpi/acpixf.h           |    2 +-
 include/acpi/actypes.h          |    7 -------
 10 files changed, 30 insertions(+), 31 deletions(-)
Signature · 1 line
1.7.10
author
#1 lore raw

PATCH 1/6 ACPICA: Comment update

From: Bob Moore <[email protected]>

No functional change. Add some comments concerning behavior when the _STA method does not exist. According to the ACPI specification, in this case the device should be assumed to be present, functional, and enabled.

---
 drivers/acpi/acpica/nsxfname.c |    7 ++++++-
 drivers/acpi/acpica/uteval.c   |    8 +++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)
drivers/acpi/acpica/nsxfname.c +6 -1
index f3a4d95..21a2ef3 100644
@@ -379,9 +379,14 @@ acpi_get_object_info(acpi_handle handle,
 		 * Get extra info for ACPI Device/Processor objects only:
 		 * Run the _STA, _ADR and, sx_w, and _sx_d methods.
 		 *
-		 * Note: none of these methods are required, so they may or may
+		 * Notes: none of these methods are required, so they may or may
 		 * not be present for this device. The Info->Valid bitfield is used
 		 * to indicate which methods were found and run successfully.
+		 *
+		 * For _STA, if the method does not exist, then (as per the ACPI
+		 * specification), the returned current_status flags will indicate
+		 * that the device is present/functional/enabled. Otherwise, the
+		 * current_status flags reflect the value returned from _STA.
 		 */
 
 		/* Execute the Device._STA method */
drivers/acpi/acpica/uteval.c +7 -1
index ee83adb..4fd6897 100644
@@ -239,7 +239,8 @@ acpi_ut_evaluate_numeric_object(char *object_name,
  * RETURN:      Status
  *
  * DESCRIPTION: Executes _STA for selected device and stores results in
- *              *Flags.
+ *              *Flags. If _STA does not exist, then the device is assumed
+ *              to be present/functional/enabled (as per the ACPI spec).
  *
  *              NOTE: Internal function, no parameter validation
  *
@@ -257,6 +258,11 @@ acpi_ut_execute_STA(struct acpi_namespace_node *device_node, u32 * flags)
 					 ACPI_BTYPE_INTEGER, &obj_desc);
 	if (ACPI_FAILURE(status)) {
 		if (AE_NOT_FOUND == status) {
+			/*
+			 * if _STA does not exist, then (as per the ACPI specification),
+			 * the returned flags will indicate that the device is present,
+			 * functional, and enabled.
+			 */
 			ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
 					  "_STA on %4.4s was not found, assuming device is present\n",
 					  acpi_ut_get_node_name(device_node)));
Signature · 1 line
1.7.10
author
#2 lore raw

PATCH 2/6 ACPICA: TableManager: Export acpi_tb_scan_memory_for_rsdp()

In reply to Lv Zheng

From: Bob Moore <[email protected]>

This patch exports this function to be used by other ACPICA utilities. Chao Guan, Bob Moore.

---
 drivers/acpi/acpica/actables.h |    5 +++++
 drivers/acpi/acpica/tbxfroot.c |    4 +---
 2 files changed, 6 insertions(+), 3 deletions(-)
drivers/acpi/acpica/actables.h +5 -0
index 7755e91..917315e 100644
@@ -47,6 +47,11 @@
 acpi_status acpi_allocate_root_table(u32 initial_table_count);
 
 /*
+ * tbxfroot - Root pointer utilities
+ */
+u8 *acpi_tb_scan_memory_for_rsdp(u8 *start_address, u32 length);
+
+/*
  * tbfadt - FADT parse/convert/validate
  */
 void acpi_tb_parse_fadt(u32 table_index);
drivers/acpi/acpica/tbxfroot.c +1 -3
index 7c2ecfb..e76ed0f 100644
@@ -49,8 +49,6 @@
 ACPI_MODULE_NAME("tbxfroot")
 
 /* Local prototypes */
-static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length);
-
 static acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp);
 
 /*******************************************************************************
@@ -231,7 +229,7 @@ acpi_status acpi_find_root_pointer(acpi_size *table_address)
  * DESCRIPTION: Search a block of memory for the RSDP signature
  *
  ******************************************************************************/
-static u8 *acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length)
+u8 *acpi_tb_scan_memory_for_rsdp(u8 *start_address, u32 length)
 {
 	acpi_status status;
 	u8 *mem_rover;
Signature · 1 line
1.7.10
author
#3 lore raw

PATCH 3/6 ACPICA: Disassembler: Expand maximum output string length to 64K

In reply to Lv Zheng

From: Bob Moore <[email protected]>

Was 256 bytes max. The original purpose of this constraint was to limit the amount of debug output. However, the string function in question (UtPrintString) is now used for the disassembler also, where 256 bytes is insufficient. Reported by RehabMan@GitHub.

---
 drivers/acpi/acpica/acutils.h  |    2 +-
 drivers/acpi/acpica/utstring.c |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)
drivers/acpi/acpica/acutils.h +1 -1
index 3c76ede..4c081c4 100644
@@ -616,7 +616,7 @@ int acpi_ut_stricmp(char *string1, char *string2);
 
 acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer);
 
-void acpi_ut_print_string(char *string, u8 max_length);
+void acpi_ut_print_string(char *string, u16 max_length);
 
 void ut_convert_backslashes(char *pathname);
 
drivers/acpi/acpica/utstring.c +3 -2
index c53759b..cb1e9cc 100644
@@ -333,7 +333,8 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
  * FUNCTION:    acpi_ut_print_string
  *
  * PARAMETERS:  string          - Null terminated ASCII string
- *              max_length      - Maximum output length
+ *              max_length      - Maximum output length. Used to constrain the
+ *                                length of strings during debug output only.
  *
  * RETURN:      None
  *
@@ -342,7 +343,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
  *
  ******************************************************************************/
 
-void acpi_ut_print_string(char *string, u8 max_length)
+void acpi_ut_print_string(char *string, u16 max_length)
 {
 	u32 i;
 
Signature · 1 line
1.7.10
author
#4 lore raw

PATCH 4/6 ACPICA: Remove restriction of 256 maximum GPEs in any GPE block

In reply to Lv Zheng

From: Bob Moore <[email protected]>

The FADT can support over 1000 GPEs, so remove any restriction on the GPE numbers.

---
 drivers/acpi/acpica/evgpeinit.c |   11 -----------
 include/acpi/actypes.h          |    7 -------
 2 files changed, 18 deletions(-)
drivers/acpi/acpica/evgpeinit.c +0 -11
index 9037f17..7842700 100644
@@ -125,7 +125,6 @@ acpi_status acpi_ev_gpe_initialize(void)
 		/* GPE block 0 exists (has both length and address > 0) */
 
 		register_count0 = (u16)(acpi_gbl_FADT.gpe0_block_length / 2);
-
 		gpe_number_max =
 		    (register_count0 * ACPI_GPE_REGISTER_WIDTH) - 1;
 
@@ -204,16 +203,6 @@ acpi_status acpi_ev_gpe_initialize(void)
 		goto cleanup;
 	}
 
-	/* Check for Max GPE number out-of-range */
-
-	if (gpe_number_max > ACPI_GPE_MAX) {
-		ACPI_ERROR((AE_INFO,
-			    "Maximum GPE number from FADT is too large: 0x%X",
-			    gpe_number_max));
-		status = AE_BAD_VALUE;
-		goto cleanup;
-	}
-
       cleanup:
 	(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
 	return_ACPI_STATUS(AE_OK);
include/acpi/actypes.h +0 -7
index a64adcc..3433d2c 100644
@@ -668,13 +668,6 @@ typedef u32 acpi_event_status;
 #define ACPI_EVENT_FLAG_SET             (acpi_event_status) 0x04
 #define ACPI_EVENT_FLAG_HANDLE		(acpi_event_status) 0x08
 
-/*
- * General Purpose Events (GPE)
- */
-#define ACPI_GPE_INVALID                0xFF
-#define ACPI_GPE_MAX                    0xFF
-#define ACPI_NUM_GPE                    256
-
 /* Actions for acpi_set_gpe, acpi_gpe_wakeup, acpi_hw_low_set_gpe */
 
 #define ACPI_GPE_ENABLE                 0
Signature · 1 line
1.7.10
author
#5 lore raw

PATCH 5/6 ACPICA: Fix compiler warnings for casting issues (only some compilers)

In reply to Lv Zheng

From: Jung-uk Kim <[email protected]>

Fixes compiler warnings from GCC 4.2 and perhaps other compilers. Jung-uk Kim <[email protected]>

---
 drivers/acpi/acpica/exdump.c   |    6 +++---
 drivers/acpi/acpica/nsxfname.c |    4 +++-
 2 files changed, 6 insertions(+), 4 deletions(-)
drivers/acpi/acpica/exdump.c +3 -3
index c740f24..4d046fa 100644
@@ -338,6 +338,7 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
 {
 	u8 *target;
 	char *name;
+	const char *reference_name;
 	u8 count;
 
 	if (!info) {
@@ -426,10 +427,9 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
 
 		case ACPI_EXD_REFERENCE:
 
+			reference_name = acpi_ut_get_reference_name(obj_desc);
 			acpi_ex_out_string("Class Name",
-					   ACPI_CAST_PTR(char,
-							 acpi_ut_get_reference_name
-							 (obj_desc)));
+					   ACPI_CAST_PTR(char, reference_name));
 			acpi_ex_dump_reference_obj(obj_desc);
 			break;
 
drivers/acpi/acpica/nsxfname.c +3 -1
index 21a2ef3..83c1644 100644
@@ -158,6 +158,7 @@ acpi_get_name(acpi_handle handle, u32 name_type, struct acpi_buffer * buffer)
 {
 	acpi_status status;
 	struct acpi_namespace_node *node;
+	char *node_name;
 
 	/* Parameter validation */
 
@@ -202,7 +203,8 @@ acpi_get_name(acpi_handle handle, u32 name_type, struct acpi_buffer * buffer)
 
 	/* Just copy the ACPI name from the Node and zero terminate it */
 
-	ACPI_MOVE_NAME(buffer->pointer, acpi_ut_get_node_name(node));
+	node_name = acpi_ut_get_node_name(node);
+	ACPI_MOVE_NAME(buffer->pointer, node_name);
 	((char *)buffer->pointer)[ACPI_NAME_SIZE] = 0;
 	status = AE_OK;
 
Signature · 1 line
1.7.10
author
#6 lore raw

PATCH 6/6 ACPICA: Update version to 20130626

In reply to Lv Zheng

From: Bob Moore <[email protected]>

Version 20130626.

---
 include/acpi/acpixf.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/acpi/acpixf.h +1 -1
index 1b09300..60b583f 100644
@@ -46,7 +46,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20130517
+#define ACPI_CA_VERSION                 0x20130626
 
 #include <acpi/acconfig.h>
 #include <acpi/actypes.h>
Signature · 1 line
1.7.10