All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Len Brown <len.brown@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>,
	linux-acpi@vger.kernel.org,
	"David E. Box" <david.e.box@linux.intel.com>,
	Bob Moore <robert.moore@intel.com>
Subject: [PATCH 20/53] ACPICA: Add support for new PCCT subtables
Date: Mon,  5 Jun 2017 16:39:08 +0800	[thread overview]
Message-ID: <eacfc2cde0f4d649050e2f378d789e1d63ac977e.1496650343.git.lv.zheng@intel.com> (raw)
In-Reply-To: <cover.1496650343.git.lv.zheng@intel.com>

From: "David E. Box" <david.e.box@linux.intel.com>

ACPICA commit e7b817e3c405a4fb9ae9ee7ae4992b8c1f20d284

Extended PCC Subspaces (types 3 and 4)

Link: https://github.com/acpica/acpica/commit/e7b817e3
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
 drivers/mailbox/pcc.c | 10 +++----
 include/acpi/actbl3.h | 77 +++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 77 insertions(+), 10 deletions(-)

diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c
index dd9ecd35..ac91fd0 100644
--- a/drivers/mailbox/pcc.c
+++ b/drivers/mailbox/pcc.c
@@ -203,7 +203,7 @@ static irqreturn_t pcc_mbox_irq(int irq, void *p)
 		struct acpi_pcct_hw_reduced_type2 *pcct2_ss = chan->con_priv;
 		u32 id = chan - pcc_mbox_channels;
 
-		doorbell_ack = &pcct2_ss->doorbell_ack_register;
+		doorbell_ack = &pcct2_ss->platform_ack_register;
 		doorbell_ack_preserve = pcct2_ss->ack_preserve_mask;
 		doorbell_ack_write = pcct2_ss->ack_write_mask;
 
@@ -416,11 +416,11 @@ static int parse_pcc_subspace(struct acpi_subtable_header *header,
 static int pcc_parse_subspace_irq(int id,
 				  struct acpi_pcct_hw_reduced *pcct_ss)
 {
-	pcc_doorbell_irq[id] = pcc_map_interrupt(pcct_ss->doorbell_interrupt,
+	pcc_doorbell_irq[id] = pcc_map_interrupt(pcct_ss->platform_interrupt,
 						 (u32)pcct_ss->flags);
 	if (pcc_doorbell_irq[id] <= 0) {
 		pr_err("PCC GSI %d not registered\n",
-		       pcct_ss->doorbell_interrupt);
+		       pcct_ss->platform_interrupt);
 		return -EINVAL;
 	}
 
@@ -429,8 +429,8 @@ static int pcc_parse_subspace_irq(int id,
 		struct acpi_pcct_hw_reduced_type2 *pcct2_ss = (void *)pcct_ss;
 
 		pcc_doorbell_ack_vaddr[id] = acpi_os_ioremap(
-				pcct2_ss->doorbell_ack_register.address,
-				pcct2_ss->doorbell_ack_register.bit_width / 8);
+				pcct2_ss->platform_ack_register.address,
+				pcct2_ss->platform_ack_register.bit_width / 8);
 		if (!pcc_doorbell_ack_vaddr[id]) {
 			pr_err("Failed to ioremap PCC ACK register\n");
 			return -ENOMEM;
diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h
index dc6de4e..5bde2e7 100644
--- a/include/acpi/actbl3.h
+++ b/include/acpi/actbl3.h
@@ -467,7 +467,7 @@ struct acpi_mpst_shared {
 /*******************************************************************************
  *
  * PCCT - Platform Communications Channel Table (ACPI 5.0)
- *        Version 1
+ *        Version 2 (ACPI 6.2)
  *
  ******************************************************************************/
 
@@ -487,7 +487,9 @@ enum acpi_pcct_type {
 	ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0,
 	ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1,
 	ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2,	/* ACPI 6.1 */
-	ACPI_PCCT_TYPE_RESERVED = 3	/* 3 and greater are reserved */
+	ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3,	/* ACPI 6.2 */
+	ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4,	/* ACPI 6.2 */
+	ACPI_PCCT_TYPE_RESERVED = 5	/* 5 and greater are reserved */
 };
 
 /*
@@ -513,7 +515,7 @@ struct acpi_pcct_subspace {
 
 struct acpi_pcct_hw_reduced {
 	struct acpi_subtable_header header;
-	u32 doorbell_interrupt;
+	u32 platform_interrupt;
 	u8 flags;
 	u8 reserved;
 	u64 base_address;
@@ -530,7 +532,7 @@ struct acpi_pcct_hw_reduced {
 
 struct acpi_pcct_hw_reduced_type2 {
 	struct acpi_subtable_header header;
-	u32 doorbell_interrupt;
+	u32 platform_interrupt;
 	u8 flags;
 	u8 reserved;
 	u64 base_address;
@@ -541,11 +543,67 @@ struct acpi_pcct_hw_reduced_type2 {
 	u32 latency;
 	u32 max_access_rate;
 	u16 min_turnaround_time;
-	struct acpi_generic_address doorbell_ack_register;
+	struct acpi_generic_address platform_ack_register;
 	u64 ack_preserve_mask;
 	u64 ack_write_mask;
 };
 
+/* 3: Extended PCC Master Subspace Type 3 (ACPI 6.2) */
+
+struct acpi_pcct_ext_pcc_master {
+	struct acpi_subtable_header header;
+	u32 platform_interrupt;
+	u8 flags;
+	u8 reserved1;
+	u64 base_address;
+	u32 length;
+	struct acpi_generic_address doorbell_register;
+	u64 preserve_mask;
+	u64 write_mask;
+	u32 latency;
+	u32 max_access_rate;
+	u32 min_turnaround_time;
+	struct acpi_generic_address platform_ack_register;
+	u64 ack_preserve_mask;
+	u64 ack_set_mask;
+	u64 reserved2;
+	struct acpi_generic_address cmd_complete_register;
+	u64 cmd_complete_mask;
+	struct acpi_generic_address cmd_update_register;
+	u64 cmd_update_preserve_mask;
+	u64 cmd_update_set_mask;
+	struct acpi_generic_address error_status_register;
+	u64 error_status_mask;
+};
+
+/* 4: Extended PCC Slave Subspace Type 4 (ACPI 6.2) */
+
+struct acpi_pcct_ext_pcc_slave {
+	struct acpi_subtable_header header;
+	u32 platform_interrupt;
+	u8 flags;
+	u8 reserved1;
+	u64 base_address;
+	u32 length;
+	struct acpi_generic_address doorbell_register;
+	u64 preserve_mask;
+	u64 write_mask;
+	u32 latency;
+	u32 max_access_rate;
+	u32 min_turnaround_time;
+	struct acpi_generic_address platform_ack_register;
+	u64 ack_preserve_mask;
+	u64 ack_set_mask;
+	u64 reserved2;
+	struct acpi_generic_address cmd_complete_register;
+	u64 cmd_complete_mask;
+	struct acpi_generic_address cmd_update_register;
+	u64 cmd_update_preserve_mask;
+	u64 cmd_update_set_mask;
+	struct acpi_generic_address error_status_register;
+	u64 error_status_mask;
+};
+
 /* Values for doorbell flags above */
 
 #define ACPI_PCCT_INTERRUPT_POLARITY    (1)
@@ -563,6 +621,15 @@ struct acpi_pcct_shared_memory {
 	u16 status;
 };
 
+/* Extended PCC Subspace Shared Memory Region (ACPI 6.2) */
+
+struct acpi_pcct_ext_pcc_shared_memory {
+	u32 signature;
+	u32 flags;
+	u32 length;
+	u32 command;
+};
+
 /*******************************************************************************
  *
  * PMTT - Platform Memory Topology Table (ACPI 5.0)
-- 
2.7.4


  parent reply	other threads:[~2017-06-05  8:39 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-05  8:15 [PATCH 00/54] ACPICA 20170531 Release Lv Zheng
2017-06-05  8:15 ` [PATCH 01/53] ACPICA: Change path's type from u8* to char* Lv Zheng
2017-06-05  8:15 ` [PATCH 02/53] ACPICA: Tables: Add WSMT support Lv Zheng
2017-06-05  8:37 ` [PATCH 03/53] ACPICA: Tables: Add HMAT table definitions Lv Zheng
2017-06-05  8:37 ` [PATCH 04/53] ACPICA: Add new notify value for memory attributes update Lv Zheng
2017-06-05  8:37 ` [PATCH 05/53] ACPICA: Added two new UUID values Lv Zheng
2017-06-05  8:37 ` [PATCH 07/53] ACPICA: Update Status field for BGRT table Lv Zheng
2017-06-05  8:37 ` [PATCH 08/53] ACPICA: Tables: Fix defined values for MADT PCAT_COMPAT flag Lv Zheng
2017-06-05  8:37 ` [PATCH 09/53] ACPICA: Add support for _LSI as a predefined method Lv Zheng
2017-06-05  8:38 ` [PATCH 10/53] ACPICA: Add support for _LSR " Lv Zheng
2017-06-05  8:38 ` [PATCH 11/53] ACPICA: Add support for _LSW " Lv Zheng
2017-06-05  8:38 ` [PATCH 12/53] ACPICA: Add support for _HMA " Lv Zheng
2017-06-05  8:38 ` [PATCH 13/53] ACPICA: Add new notify value for HEST table Lv Zheng
2017-06-05  8:38 ` [PATCH 14/53] ACPICA: Tables: Add PPTT table definitions Lv Zheng
2017-06-05  8:38 ` [PATCH 15/53] ACPICA: Add new flags to HEST subtables Lv Zheng
2017-06-05  8:38 ` [PATCH 16/53] ACPICA: Add support for new HEST subtable Lv Zheng
2017-06-05  8:38 ` [PATCH 17/53] ACPICA: Add support for new SRAT subtable Lv Zheng
2017-06-05  8:38 ` [PATCH 18/53] ACPICA: disassembler: improve Switch support Lv Zheng
2017-06-05  8:39 ` [PATCH 19/53] ACPICA: Add header support for TPM2 table changes Lv Zheng
2017-06-05  8:39 ` Lv Zheng [this message]
2017-06-05  8:39 ` [PATCH 21/53] ACPICA: ACPI 6.2: Add support for PinFunction() resource Lv Zheng
2017-06-05  8:39 ` [PATCH 22/53] ACPICA: ACPI 6.2: Add support for PinConfig() resource Lv Zheng
2017-06-05  8:39 ` [PATCH 23/53] ACPICA: ACPI 6.2: Add support for PinGroup() resource Lv Zheng
2017-06-05  8:39 ` [PATCH 24/53] ACPICA: ACPI 6.2: Add support for PinGroupFunction() resource Lv Zheng
2017-06-05  8:39 ` [PATCH 25/53] ACPICA: ACPI 6.2: Add support for PinGroupConfig() resource Lv Zheng
2017-06-05  8:39 ` [PATCH 26/53] ACPICA: Fix a type value overlap in the AML support file Lv Zheng
2017-06-05  8:39 ` [PATCH 27/53] ACPICA: Core: Always set GPIO VendorOffset Lv Zheng
2017-06-05  8:39 ` [PATCH 28/53] ACPICA: OSL: Add support to exclude stdarg.h Lv Zheng
2017-06-05  8:40 ` [PATCH 29/53] ACPICA: Events: Add runtime stub support for event APIs Lv Zheng
2017-06-05  8:40 ` [PATCH 30/53] ACPICA: Update error message for field beyond buffer case Lv Zheng
2017-06-05  8:40 ` [PATCH 31/53] ACPICA: Explicitly cast 1 to u32 Lv Zheng
2017-06-05  8:40 ` [PATCH 32/53] ACPICA: Debugger/acpiexec: Cleanup error messages Lv Zheng
2017-06-05  8:40 ` [PATCH 33/53] ACPICA: Dispatcher: Remove unnecessary call to debugger Lv Zheng
2017-06-05  8:40 ` [PATCH 34/53] ACPICA: Disassembler: Abort on an invalid/unknown AML opcode Lv Zheng
2017-06-05  8:40 ` [PATCH 35/53] ACPICA: Export the public mutex interfaces Lv Zheng
2017-06-05  8:40 ` [PATCH 36/53] ACPICA: Remove extraneous status check Lv Zheng
2017-06-05  8:40 ` [PATCH 37/53] ACPICA: Update resource descriptor handling Lv Zheng
2017-06-05  8:40 ` [PATCH 38/53] ACPICA: Split resource descriptor decode strings to a new file Lv Zheng
2017-06-05  8:41 ` [PATCH 39/53] ACPICA: Update comments, no functional change Lv Zheng
2017-06-05  8:41 ` [PATCH 40/53] ACPICA: Comment update: spelling/format. No " Lv Zheng
2017-06-05  8:41 ` [PATCH 41/53] ACPICA: Fix for Device/Thermal objects with ObjectType and DerefOf Lv Zheng
2017-06-05  8:41 ` [PATCH 42/53] ACPICA: Update two error messages to emit control method name Lv Zheng
2017-06-05  8:41 ` [PATCH 43/53] ACPICA: Changing External to a named object Lv Zheng
2017-06-05  8:41 ` [PATCH 44/53] ACPICA: Changed Gbl_disasm_flag to acpi_gbl_disasm_flag Lv Zheng
2017-06-05  8:41 ` [PATCH 45/53] ACPICA: Disassembler: prevent external op's from opening a new scope Lv Zheng
2017-06-05  8:41 ` [PATCH 46/53] ACPICA: Disassembler: add external op to namespace on first pass Lv Zheng
2017-06-05  8:41 ` [PATCH 47/53] ACPICA: Disassembler: allow conflicting external declarations to be emitted Lv Zheng
2017-06-05  8:42 ` [PATCH 48/53] ACPICA: Improvements for debug output only Lv Zheng
2017-06-05  8:42 ` [PATCH 49/53] ACPICA: Unix application OSL: Correctly handle control-c (EINTR) Lv Zheng
2017-06-05  8:42 ` [PATCH 50/53] ACPICA: Simplify output for the ACPI Debug Object Lv Zheng
2017-06-05  8:42 ` [PATCH 51/53] ACPICA: acpiexec: enhance local signal handler Lv Zheng
2017-06-05  8:42 ` [PATCH 52/53] ACPICA: Update a couple of debug output messages Lv Zheng
2017-06-05  8:42 ` [PATCH 53/53] ACPICA: Update version to 20170531 Lv Zheng
2017-06-05  8:45 ` [PATCH 06/53] ACPICA: Utilities: Make a notify value reserved Lv Zheng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eacfc2cde0f4d649050e2f378d789e1d63ac977e.1496650343.git.lv.zheng@intel.com \
    --to=lv.zheng@intel.com \
    --cc=david.e.box@linux.intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rjw@rjwysocki.net \
    --cc=robert.moore@intel.com \
    --cc=zetalog@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.