Skip to contentSkip to conversation

ACPICA: 20140828 Release

PATCH In review Lv Zheng 2 participants 8 messages Sep 2, 2014 – Sep 3, 2014

Subsystems (2)
lore
Share & tools
lore

Lv Zheng

author
#0 lore raw

cover ACPICA: 20140828 Release

The 20140828 ACPICA kernel-resident subsystem updates are linuxized based on the pm/linux-next branch to form this patchset.

The patchset has passed the following build/boot tests. Build tests are performed as follows:
1. i386 + default + COFNIG_ACPI=y
2. i386 + allyes + CONFIG_ACPI=y
3. i386 + default + COFNIG_ACPI=n
4. i386 + allyes + CONFIG_ACPI=n
5. x86_64 + default + COFNIG_ACPI=y
6. x86_64 + allyes + CONFIG_ACPI=y
7. x86_64 + default + COFNIG_ACPI=n
8. x86_64 + allyes + CONFIG_ACPI=n
Boot tests are performed as follows:
1. i386 + default + COFNIG_ACPI=y
2. x86_64 + default + COFNIG_ACPI=y
Where:
1. i386: machine named as "Dell Inspiron Mini 1010"
2. x86_64: machine named as "HP Compaq 8200 Elite SFF PC"
3. default: kernel configuration with following items enabled:
All hardware drivers related to the machines of i386/x86_64 All drivers/acpi configurations
All platform drivers

The divergences checking result:
Before applying (20140724 Release):
848 lines
After applying (20140828 Release):
710 lines

Bob Moore (3):
ACPICA: Add _PSx names to the METHOD_NAME list.
ACPICA: Disassembler: Fix for gpio_int interrupt polarity flags.
ACPICA: Update version to 20140828.

Hanjun Guo (2):
ACPICA: ACPI 5.1/Disassembler: Add GICC affinity subtable to SRAT
table.
ACPICA: Headers: Add GTDT flag definitions for the timer subtable.

Mika Westerberg (1):
ACPICA: ACPI 5.1: Add support for runtime validation of _DSD package.

 drivers/acpi/acpica/nsprepkg.c |   39 +++++++++++++++++++++++++++++++++++++++
 drivers/acpi/acpica/utresrc.c  |    4 +++-
 include/acpi/acnames.h         |    4 ++++
 include/acpi/acpixf.h          |    2 +-
 include/acpi/actbl1.h          |   19 +++++++++++++++++--
 include/acpi/actbl3.h          |    9 +++++++--
 6 files changed, 71 insertions(+), 6 deletions(-)
Signature · 1 line
1.7.10
author
#1 lore raw

PATCH 1/6 ACPICA: Add _PSx names to the METHOD_NAME list.

From: Bob Moore <[email protected]>

Will be used by iASL.

---
 include/acpi/acnames.h |    4 ++++
 1 file changed, 4 insertions(+)
include/acpi/acnames.h +4 -0
index c728113..f97804b 100644
@@ -59,6 +59,10 @@
 #define METHOD_NAME__PRS        "_PRS"
 #define METHOD_NAME__PRT        "_PRT"
 #define METHOD_NAME__PRW        "_PRW"
+#define METHOD_NAME__PS0        "_PS0"
+#define METHOD_NAME__PS1        "_PS1"
+#define METHOD_NAME__PS2        "_PS2"
+#define METHOD_NAME__PS3        "_PS3"
 #define METHOD_NAME__REG        "_REG"
 #define METHOD_NAME__SB_        "_SB_"
 #define METHOD_NAME__SEG        "_SEG"
Signature · 1 line
1.7.10
author
#2 lore raw

PATCH 2/6 ACPICA: ACPI 5.1/Disassembler: Add GICC affinity subtable to SRAT table.

In reply to Lv Zheng

From: Hanjun Guo <[email protected]>

Update template for SRAT.
Add clock_domain to standard CPU affinity subtable.

Mostly by Hanjun Guo <[email protected]>

---
 include/acpi/actbl1.h |   19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
include/acpi/actbl1.h +17 -2
index 7626bfe..29e7937 100644
@@ -952,7 +952,8 @@ enum acpi_srat_type {
 	ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
 	ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
 	ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
-	ACPI_SRAT_TYPE_RESERVED = 3	/* 3 and greater are reserved */
+	ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
+	ACPI_SRAT_TYPE_RESERVED = 4	/* 4 and greater are reserved */
 };
 
 /*
@@ -968,7 +969,7 @@ struct acpi_srat_cpu_affinity {
 	u32 flags;
 	u8 local_sapic_eid;
 	u8 proximity_domain_hi[3];
-	u32 reserved;		/* Reserved, must be zero */
+	u32 clock_domain;
 };
 
 /* Flags */
@@ -1010,6 +1011,20 @@ struct acpi_srat_x2apic_cpu_affinity {
 
 #define ACPI_SRAT_CPU_ENABLED       (1)	/* 00: Use affinity structure */
 
+/* 3: GICC Affinity (ACPI 5.1) */
+
+struct acpi_srat_gicc_affinity {
+	struct acpi_subtable_header header;
+	u32 proximity_domain;
+	u32 acpi_processor_uid;
+	u32 flags;
+	u32 clock_domain;
+};
+
+/* Flags for struct acpi_srat_gicc_affinity */
+
+#define ACPI_SRAT_GICC_ENABLED     (1)	/* 00: Use affinity structure */
+
 /* Reset to default packing */
 
 #pragma pack()
Signature · 1 line
1.7.10
author
#3 lore raw

PATCH 3/6 ACPICA: Headers: Add GTDT flag definitions for the timer subtable.

In reply to Lv Zheng

From: Hanjun Guo <[email protected]>

Mostly by Hanjun Guo <[email protected]>

---
 include/acpi/actbl3.h |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
include/acpi/actbl3.h +7 -2
index 787bcc8..5480cb2 100644
@@ -310,10 +310,15 @@ struct acpi_gtdt_timer_entry {
 	u32 common_flags;
 };
 
+/* Flag Definitions: timer_flags and virtual_timer_flags above */
+
+#define ACPI_GTDT_GT_IRQ_MODE               (1)
+#define ACPI_GTDT_GT_IRQ_POLARITY           (1<<1)
+
 /* Flag Definitions: common_flags above */
 
-#define ACPI_GTDT_GT_IS_SECURE_TIMER    (1)
-#define ACPI_GTDT_GT_ALWAYS_ON          (1<<1)
+#define ACPI_GTDT_GT_IS_SECURE_TIMER        (1)
+#define ACPI_GTDT_GT_ALWAYS_ON              (1<<1)
 
 /* 1: SBSA Generic Watchdog Structure */
 
Signature · 1 line
1.7.10
author
#4 lore raw

PATCH 4/6 ACPICA: Disassembler: Fix for gpio_int interrupt polarity flags.

In reply to Lv Zheng

From: Bob Moore <[email protected]>

The field is actually 2 bits, not 1.

---
 drivers/acpi/acpica/utresrc.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/acpi/acpica/utresrc.c +3 -1
index 14cb6c0..5cd017c 100644
@@ -87,7 +87,9 @@ const char *acpi_gbl_io_decode[] = {
 
 const char *acpi_gbl_ll_decode[] = {
 	"ActiveHigh",
-	"ActiveLow"
+	"ActiveLow",
+	"ActiveBoth",
+	"Reserved"
 };
 
 const char *acpi_gbl_max_decode[] = {
Signature · 1 line
1.7.10
author
#5 lore raw

PATCH 5/6 ACPICA: ACPI 5.1: Add support for runtime validation of _DSD package.

In reply to Lv Zheng

From: Mika Westerberg <[email protected]>

Adds ACPICA kernel runtime support to validate contents/format of the _DSD package, similar to the iASL support. Ported by Mika Westerberg.

---
 drivers/acpi/acpica/nsprepkg.c |   39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
drivers/acpi/acpica/nsprepkg.c +39 -0
index 68f7258..1b13b92 100644
@@ -316,6 +316,45 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
 		    acpi_ns_check_package_list(info, package, elements, count);
 		break;
 
+	case ACPI_PTYPE2_UUID_PAIR:
+
+		/* The package must contain pairs of (UUID + type) */
+
+		if (count & 1) {
+			expected_count = count + 1;
+			goto package_too_small;
+		}
+
+		while (count > 0) {
+			status = acpi_ns_check_object_type(info, elements,
+							   package->ret_info.
+							   object_type1, 0);
+			if (ACPI_FAILURE(status)) {
+				return (status);
+			}
+
+			/* Validate length of the UUID buffer */
+
+			if ((*elements)->buffer.length != 16) {
+				ACPI_WARN_PREDEFINED((AE_INFO,
+						      info->full_pathname,
+						      info->node_flags,
+						      "Invalid length for UUID Buffer"));
+				return (AE_AML_OPERAND_VALUE);
+			}
+
+			status = acpi_ns_check_object_type(info, elements + 1,
+							   package->ret_info.
+							   object_type2, 0);
+			if (ACPI_FAILURE(status)) {
+				return (status);
+			}
+
+			elements += 2;
+			count -= 2;
+		}
+		break;
+
 	default:
 
 		/* Should not get here if predefined info table is correct */
Signature · 1 line
1.7.10
author
#6 lore raw

PATCH 6/6 ACPICA: Update version to 20140828.

In reply to Lv Zheng

From: Bob Moore <[email protected]>

Version 20140828.

---
 include/acpi/acpixf.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/acpi/acpixf.h +1 -1
index b7c89d4..dc9d037 100644
@@ -46,7 +46,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20140724
+#define ACPI_CA_VERSION                 0x20140828
 
 #include <acpi/acconfig.h>
 #include <acpi/actypes.h>
Signature · 1 line
1.7.10
#7 lore raw
In reply to Lv Zheng
Quoted 43 lines · Lv Zheng

The 20140828 ACPICA kernel-resident subsystem updates are linuxized based on the pm/linux-next branch to form this patchset.

The patchset has passed the following build/boot tests. Build tests are performed as follows:
1. i386 + default + COFNIG_ACPI=y
2. i386 + allyes + CONFIG_ACPI=y
3. i386 + default + COFNIG_ACPI=n
4. i386 + allyes + CONFIG_ACPI=n
5. x86_64 + default + COFNIG_ACPI=y
6. x86_64 + allyes + CONFIG_ACPI=y
7. x86_64 + default + COFNIG_ACPI=n
8. x86_64 + allyes + CONFIG_ACPI=n
Boot tests are performed as follows:
1. i386 + default + COFNIG_ACPI=y
2. x86_64 + default + COFNIG_ACPI=y
Where:
1. i386: machine named as "Dell Inspiron Mini 1010"
2. x86_64: machine named as "HP Compaq 8200 Elite SFF PC"
3. default: kernel configuration with following items enabled:
All hardware drivers related to the machines of i386/x86_64 All drivers/acpi configurations
All platform drivers

The divergences checking result:
Before applying (20140724 Release):
848 lines
After applying (20140828 Release):
710 lines

Bob Moore (3):
ACPICA: Add _PSx names to the METHOD_NAME list.
ACPICA: Disassembler: Fix for gpio_int interrupt polarity flags.
ACPICA: Update version to 20140828.

Hanjun Guo (2):
ACPICA: ACPI 5.1/Disassembler: Add GICC affinity subtable to SRAT
table.
ACPICA: Headers: Add GTDT flag definitions for the timer subtable.

Mika Westerberg (1):
ACPICA: ACPI 5.1: Add support for runtime validation of _DSD package.

Quoted 7 lines
 drivers/acpi/acpica/nsprepkg.c |   39 +++++++++++++++++++++++++++++++++++++++
 drivers/acpi/acpica/utresrc.c  |    4 +++-
 include/acpi/acnames.h         |    4 ++++
 include/acpi/acpixf.h          |    2 +-
 include/acpi/actbl1.h          |   19 +++++++++++++++++--
 include/acpi/actbl3.h          |    9 +++++++--
 6 files changed, 71 insertions(+), 6 deletions(-)

Patch series queued up for 3.18 except for [5/6] that has already been queued up for 3.17-rc4. Thanks!

Signature · 2 lines
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.