From: Andrew Morton <akpm@linux-foundation.org>
To: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
johnstul@us.ibm.com, hirofumi@mail.parknet.co.jp,
alan@lxorguk.ukuu.org.uk, arjan@infradead.org, andi@lisas.de
Subject: Re: [git pull?] clocksource: ACPI pmtmr bugfixes [Was: Re: ACPI PM-Timer on K6-3 SiS5591: Houston...]
Date: Mon, 18 Aug 2008 12:19:24 -0700 [thread overview]
Message-ID: <20080818121924.6b61f7af.akpm@linux-foundation.org> (raw)
In-Reply-To: <20080818190325.GA12581@comet.dominikbrodowski.net>
On Mon, 18 Aug 2008 21:03:25 +0200
Dominik Brodowski <linux@dominikbrodowski.net> wrote:
> Hi,
>
> anyone willing to take these two patches? Possibly 2.6.27 material; hasn't
> been in -next or -mm.
>
> Best,
> Dominik
>
>
> The following changes since commit 796aadeb1b2db9b5d463946766c5bbfd7717158c:
> Linus Torvalds (1):
> Merge branch 'fixes' of git://git.kernel.org/.../davej/cpufreq
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git clocksource
>
> Dominik Brodowski (2):
> acpi_pm.c: use proper read function also in errata mode.
> acpi_pm.c: check for monotonicity
>
> drivers/clocksource/acpi_pm.c | 50 +++++++++++++++++++++++-----------------
> 1 files changed, 29 insertions(+), 21 deletions(-)
A bare git URL is somewhat user-unfriendly.
<fiddle, fiddle>
: commit b985f0517e31c1204b5aafb94f86202948f00e16
: Author: Dominik Brodowski <linux@dominikbrodowski.net>
: Date: Sun Aug 10 21:24:21 2008 +0200
:
: acpi_pm.c: use proper read function also in errata mode.
:
: When acpi_pm is used in errata mode (three reads instead of one), also the
: acpi_pm init functions need to use three reads instead of just one.
hm, why? Was there some observeable problem which this change improved?
: Thanks to Andreas Mohr for spotting this issue.
:
: 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>
:
: diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
: index 5ca1d80..2c00edd 100644
: --- a/drivers/clocksource/acpi_pm.c
: +++ b/drivers/clocksource/acpi_pm.c
: @@ -151,13 +151,13 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_LE,
: */
: static int verify_pmtmr_rate(void)
: {
: - u32 value1, value2;
: + cycle_t value1, value2;
: unsigned long count, delta;
:
: mach_prepare_counter();
: - value1 = read_pmtmr();
: + value1 = clocksource_acpi_pm.read()
: mach_countup(&count);
: - value2 = read_pmtmr();
: + value2 = clocksource_acpi_pm.read()
: delta = (value2 - value1) & ACPI_PM_MASK;
:
: /* Check that the PMTMR delta is within 5% of what we expect */
: @@ -177,7 +177,7 @@ static int verify_pmtmr_rate(void)
:
: static int __init init_acpi_pm_clocksource(void)
: {
: - u32 value1, value2;
: + cycle_t value1, value2;
: unsigned int i;
:
: if (!pmtmr_ioport)
: @@ -187,9 +187,9 @@ static int __init init_acpi_pm_clocksource(void)
: clocksource_acpi_pm.shift);
:
: /* "verify" this timing source: */
: - value1 = read_pmtmr();
: + value1 = clocksource_acpi_pm.read();
: for (i = 0; i < 10000; i++) {
: - value2 = read_pmtmr();
: + value2 = clocksource_acpi_pm.read();
: if (value2 == value1)
: continue;
: if (value2 > value1)
: @@ -197,11 +197,11 @@ static int __init init_acpi_pm_clocksource(void)
: if ((value2 < value1) && ((value2) < 0xFFF))
: goto pm_good;
: printk(KERN_INFO "PM-Timer had inconsistent results:"
: - " 0x%#x, 0x%#x - aborting.\n", value1, value2);
: + " 0x%#llx, 0x%#llx - aborting.\n", value1, value2);
: return -EINVAL;
: }
: printk(KERN_INFO "PM-Timer had no reasonable result:"
: - " 0x%#x - aborting.\n", value1);
: + " 0x%#llx - aborting.\n", value1);
: return -ENODEV;
:
: pm_good:
:
and
: commit a44299593315e055f28fe96b4767a85c46b2955f
: Author: Dominik Brodowski <linux@dominikbrodowski.net>
: Date: Sun Aug 10 21:34:54 2008 +0200
:
: acpi_pm.c: check for monotonicity
:
: Expand the check for monotonicity by doing ten tests instead of one.
Why?
: 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>
:
: 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;
:
I guess this file falls under Thomas's git-hrt tree. I can queue the
patches up and spam Thomas with them, but I'm at a bit of a loss
regarding their priority due to the above questions.
next prev parent reply other threads:[~2008-08-18 19:20 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 ` [PATCH 2/2] acpi_pm.c: check for monotonicity Dominik Brodowski
2008-08-18 19:19 ` Andrew Morton [this message]
2008-08-18 19:35 ` [git pull?] clocksource: ACPI pmtmr bugfixes [Was: Re: ACPI PM-Timer on K6-3 SiS5591: Houston...] 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=20080818121924.6b61f7af.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@lisas.de \
--cc=arjan@infradead.org \
--cc=hirofumi@mail.parknet.co.jp \
--cc=johnstul@us.ibm.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
/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.