All of lore.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <len.brown@intel.com>
To: linux-acpi@vger.kernel.org
Cc: Len Brown <len.brown@intel.com>
Subject: [PATCH 15/16] ACPI: quiet ACPI Exceptions due to no _PTC or _TSS
Date: Wed, 25 Jul 2007 01:51:24 -0400	[thread overview]
Message-ID: <11853427011270-git-send-email-len.brown@intel.com> (raw)
Message-ID: <c30c620ee1cc351bcc149c4280e1166998df0064.1185342489.git.len.brown@intel.com> (raw)
In-Reply-To: <11853426852588-git-send-email-len.brown@intel.com>
In-Reply-To: <e9b3aba887f47f9cd64de20fec9c333a932b70dc.1185342489.git.len.brown@intel.com>

ACPI Exception (processor_throttling-0084): AE_NOT_FOUND, Evaluating _PTC [20070126]
ACPI Exception (processor_throttling-0147): AE_NOT_FOUND, Evaluating _TSS [20070126]

These methods are optional, so Linux should not
alarm users when they are not found.

http://bugzilla.kernel.org/show_bug.cgi?id=8802

Signed-off-by: Len Brown <len.brown@intel.com>
Acked-by: Luming Yu <luming.yu@intel.com>
---
 drivers/acpi/processor_throttling.c |   53 ++++++++++++++++++++++++----------
 1 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index dc5b859..0b8204e 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -47,6 +47,9 @@ ACPI_MODULE_NAME("processor_throttling");
 static int acpi_processor_get_throttling(struct acpi_processor *pr);
 int acpi_processor_set_throttling(struct acpi_processor *pr, int state);
 
+/*
+ * _TPC - Throttling Present Capabilities
+ */
 static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
 {
 	acpi_status status = 0;
@@ -55,8 +58,10 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
 	if (!pr)
 		return -EINVAL;
 	status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc);
-	if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
-		ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TPC"));
+	if (ACPI_FAILURE(status)) {
+		if (status != AE_NOT_FOUND) {
+			ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TPC"));
+		}
 		return -ENODEV;
 	}
 	pr->throttling_platform_limit = (int)tpc;
@@ -68,9 +73,9 @@ int acpi_processor_tstate_has_changed(struct acpi_processor *pr)
 	return acpi_processor_get_platform_limit(pr);
 }
 
-/* --------------------------------------------------------------------------
-                             _PTC, _TSS, _TSD support 
-   -------------------------------------------------------------------------- */
+/*
+ * _PTC - Processor Throttling Control (and status) register location
+ */
 static int acpi_processor_get_throttling_control(struct acpi_processor *pr)
 {
 	int result = 0;
@@ -81,7 +86,9 @@ static int acpi_processor_get_throttling_control(struct acpi_processor *pr)
 
 	status = acpi_evaluate_object(pr->handle, "_PTC", NULL, &buffer);
 	if (ACPI_FAILURE(status)) {
-		ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PTC"));
+		if (status != AE_NOT_FOUND) {
+			ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PTC"));
+		}
 		return -ENODEV;
 	}
 
@@ -132,6 +139,10 @@ static int acpi_processor_get_throttling_control(struct acpi_processor *pr)
 
 	return result;
 }
+
+/*
+ * _TSS - Throttling Supported States
+ */
 static int acpi_processor_get_throttling_states(struct acpi_processor *pr)
 {
 	int result = 0;
@@ -144,7 +155,9 @@ static int acpi_processor_get_throttling_states(struct acpi_processor *pr)
 
 	status = acpi_evaluate_object(pr->handle, "_TSS", NULL, &buffer);
 	if (ACPI_FAILURE(status)) {
-		ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TSS"));
+		if (status != AE_NOT_FOUND) {
+			ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TSS"));
+		}
 		return -ENODEV;
 	}
 
@@ -201,6 +214,10 @@ static int acpi_processor_get_throttling_states(struct acpi_processor *pr)
 
 	return result;
 }
+
+/*
+ * _TSD - T-State Dependencies
+ */
 static int acpi_processor_get_tsd(struct acpi_processor *pr)
 {
 	int result = 0;
@@ -213,6 +230,9 @@ static int acpi_processor_get_tsd(struct acpi_processor *pr)
 
 	status = acpi_evaluate_object(pr->handle, "_TSD", NULL, &buffer);
 	if (ACPI_FAILURE(status)) {
+		if (status != AE_NOT_FOUND) {
+			ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TSD"));
+		}
 		return -ENODEV;
 	}
 
@@ -525,9 +545,6 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
 	int result = 0;
 	int step = 0;
 	int i = 0;
-	int no_ptc = 0;
-	int no_tss = 0;
-	int no_tsd = 0;
 
 	ACPI_DEBUG_PRINT((ACPI_DB_INFO,
 			  "pblk_address[0x%08x] duty_offset[%d] duty_width[%d]\n",
@@ -538,12 +555,14 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
 	if (!pr)
 		return -EINVAL;
 
-	/* TBD: Support ACPI 2.0 objects */
-	no_ptc = acpi_processor_get_throttling_control(pr);
-	no_tss = acpi_processor_get_throttling_states(pr);
-	no_tsd = acpi_processor_get_tsd(pr);
-
-	if (no_ptc || no_tss) {
+	/*
+	 * Evaluate _PTC, _TSS and _TPC
+	 * They must all be present or none of them can be used.
+	 */
+	if (acpi_processor_get_throttling_control(pr) ||
+		acpi_processor_get_throttling_states(pr) ||
+		acpi_processor_get_platform_limit(pr))
+	{
 		pr->throttling.acpi_processor_get_throttling =
 		    &acpi_processor_get_throttling_fadt;
 		pr->throttling.acpi_processor_set_throttling =
@@ -555,6 +574,8 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
 		    &acpi_processor_set_throttling_ptc;
 	}
 
+	acpi_processor_get_tsd(pr);
+
 	if (!pr->throttling.address) {
 		ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No throttling register\n"));
 		return 0;
-- 
1.5.3.rc2.22.g69a9b

  parent reply	other threads:[~2007-07-25  5:51 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-25  5:51 ACPI patches for 2.6.23-rc1 Len Brown
2007-07-25  5:51 ` [PATCH 01/16] ACPI: Implement the set_target() callback from pm_ops Len Brown
2007-07-25  5:51   ` Len Brown
2007-07-25  5:51   ` [PATCH 02/16] ACPI: Add acpi_pm_device_sleep_state helper routine Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 03/16] ACPI, PNP: hook ACPI D-state to PNP suspend/resume Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 04/16] ACPI: Use ACPI methods to select PCI device suspend state Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 05/16] ACPI: ignore _PSx method for hotplugable PCI devices Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 06/16] ACPI: fix oops due to typo in new throttling code Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 07/16] ACPI: asus-laptop: Fix failure exits Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 08/16] ACPI: autoload modules - ACPICA modifications Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 09/16] ACPI: autoload modules - Create ACPI alias interface Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 10/16] ACPI: autoload modules - Create __mod_acpi_device_table symbol for all ACPI drivers Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 11/16] ACPI: Kconfig: CONFIG_ACPI_PROCFS now defaults to N Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 12/16] ACPI: Kconfig: fold /proc/acpi/sleep under CONFIG_ACPI_PROCFS Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 13/16] ACPI: Kconfig: always enable CONFIG_ACPI_SLEEP on X86 Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` [PATCH 14/16] ACPI: Remove references to ACPI_STATE_S2 from acpi_pm_enter Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  5:51   ` Len Brown [this message]
2007-07-25  5:51     ` [PATCH 15/16] ACPI: quiet ACPI Exceptions due to no _PTC or _TSS Len Brown
2007-07-25  5:51   ` [PATCH 16/16] ACPI: Kconfig: remove CONFIG_ACPI_SLEEP from source Len Brown
2007-07-25  5:51     ` Len Brown
2007-07-25  9:49 ` ACPI patches for 2.6.23-rc1 Richard Hughes

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=11853427011270-git-send-email-len.brown@intel.com \
    --to=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    /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.