From: Dominik Brodowski <linux@dominikbrodowski.net>
To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
Cc: Dominik Brodowski <linux@dominikbrodowski.net>,
John Stultz <johnstul@us.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>
Subject: [PATCH 2/2] acpi_pm.c: check for monotonicity
Date: Mon, 18 Aug 2008 21:05:11 +0200 [thread overview]
Message-ID: <1219086311-13365-2-git-send-email-linux@dominikbrodowski.net> (raw)
In-Reply-To: <20080818190325.GA12581@comet.dominikbrodowski.net>
Expand the check for monotonicity by doing ten tests instead of one.
Applies on top of "acpi_pm.c: use proper read function also in errata mode."
CC: John Stultz <johnstul@us.ibm.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
---
drivers/clocksource/acpi_pm.c | 42 ++++++++++++++++++++++++----------------
1 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
index 2c00edd..f05c4fb 100644
--- a/drivers/clocksource/acpi_pm.c
+++ b/drivers/clocksource/acpi_pm.c
@@ -178,7 +178,7 @@ static int verify_pmtmr_rate(void)
static int __init init_acpi_pm_clocksource(void)
{
cycle_t value1, value2;
- unsigned int i;
+ unsigned int i, j, good = 0;
if (!pmtmr_ioport)
return -ENODEV;
@@ -187,24 +187,32 @@ static int __init init_acpi_pm_clocksource(void)
clocksource_acpi_pm.shift);
/* "verify" this timing source: */
- value1 = clocksource_acpi_pm.read();
- for (i = 0; i < 10000; i++) {
- value2 = clocksource_acpi_pm.read();
- if (value2 == value1)
- continue;
- if (value2 > value1)
- goto pm_good;
- if ((value2 < value1) && ((value2) < 0xFFF))
- goto pm_good;
- printk(KERN_INFO "PM-Timer had inconsistent results:"
- " 0x%#llx, 0x%#llx - aborting.\n", value1, value2);
- return -EINVAL;
+ for (j = 0; j < 10; j++) {
+ value1 = clocksource_acpi_pm.read();
+ for (i = 0; i < 10000; i++) {
+ value2 = clocksource_acpi_pm.read();
+ if (value2 == value1)
+ continue;
+ if (value2 > value1)
+ good++;
+ break;
+ if ((value2 < value1) && ((value2) < 0xFFF))
+ good++;
+ break;
+ printk(KERN_INFO "PM-Timer had inconsistent results:"
+ " 0x%#llx, 0x%#llx - aborting.\n",
+ value1, value2);
+ return -EINVAL;
+ }
+ udelay(300 * i);
+ }
+
+ if (good != 10) {
+ printk(KERN_INFO "PM-Timer had no reasonable result:"
+ " 0x%#llx - aborting.\n", value1);
+ return -ENODEV;
}
- printk(KERN_INFO "PM-Timer had no reasonable result:"
- " 0x%#llx - aborting.\n", value1);
- return -ENODEV;
-pm_good:
if (verify_pmtmr_rate() != 0)
return -ENODEV;
--
1.5.4.3
next prev parent reply other threads:[~2008-08-18 19:05 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-10 10:17 ACPI PM-Timer on K6-3 SiS5591: Houston Andreas Mohr
2008-08-10 16:29 ` Dominik Brodowski
2008-08-10 16:40 ` Arjan van de Ven
2008-08-10 19:08 ` Andreas Mohr
2008-08-10 19:08 ` Andreas Mohr
2008-08-10 20:02 ` Dominik Brodowski
2008-08-18 19:03 ` [git pull?] clocksource: ACPI pmtmr bugfixes [Was: Re: ACPI PM-Timer on K6-3 SiS5591: Houston...] Dominik Brodowski
2008-08-18 19:05 ` [PATCH 1/2] acpi_pm.c: use proper read function also in errata mode Dominik Brodowski
2008-08-18 19:05 ` Dominik Brodowski [this message]
2008-08-18 19:19 ` [git pull?] clocksource: ACPI pmtmr bugfixes [Was: Re: ACPI PM-Timer on K6-3 SiS5591: Houston...] Andrew Morton
2008-08-18 19:35 ` Dominik Brodowski
2008-08-18 19:47 ` Andrew Morton
2008-08-18 20:09 ` Dominik Brodowski
2008-08-18 20:10 ` [PATCH 1/2] acpi_pm.c: use proper read function also in errata mode Dominik Brodowski
2008-08-18 20:10 ` Dominik Brodowski
2008-08-19 9:43 ` Andrew Morton
2008-08-19 9:49 ` Dominik Brodowski
2008-08-19 9:59 ` Andrew Morton
2008-08-22 22:22 ` [PATCH v2 " Dominik Brodowski
2008-08-22 22:26 ` [PATCH v2 2/2] acpi_pm.c: check for monotonicity Dominik Brodowski
2008-08-23 8:48 ` Jochen Voß
2008-08-23 8:48 ` Jochen Voß
2008-08-18 20:11 ` [PATCH " Dominik Brodowski
2008-08-18 20:11 ` Dominik Brodowski
2008-08-18 20:18 ` Andreas Mohr
2008-08-18 20:18 ` Andreas Mohr
2008-08-18 20:28 ` Andrew Morton
2008-08-18 20:28 ` Andrew Morton
2008-08-18 20:42 ` Dominik Brodowski
2008-08-18 20:25 ` [git pull?] clocksource: ACPI pmtmr bugfixes [Was: Re: ACPI PM-Timer on K6-3 SiS5591: Houston...] Andrew Morton
2008-08-18 20:29 ` Dominik Brodowski
2008-08-18 20:00 ` Andreas Mohr
2008-08-18 20:00 ` Andreas Mohr
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=1219086311-13365-2-git-send-email-linux@dominikbrodowski.net \
--to=linux@dominikbrodowski.net \
--cc=johnstul@us.ibm.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/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.