2008-01-27 14:33:19

by Alistair John Strachan

[permalink] [raw]
Subject: [PATCH] Force enable HPET on (some?) ICH9 boards

Some consumer ICH9 boards (such as the Abit IP35 Pro) do not provide a BIOS
option for enabling the HPET. The same ICH workaround used for 6,7,8 can be
applied to 9. Here I enable the only PCI id that was visible on my system.

I have confirmed the HPETs work both from userspace and as a clocksource for
the running kernel (2.6.24 here) after applying this patch.

Force enabled HPET at base address 0xfed00000
hpet clockevent registered
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
hpet0: 4 64-bit timers, 14318180 Hz

Signed-off-by: Alistair John Strachan <[email protected]>

---
arch/x86/kernel/quirks.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index fab30e1..150ba29 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -162,6 +162,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31,
ich_force_enable_hpet);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_1,
ich_force_enable_hpet);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH9_7,
+ ich_force_enable_hpet);


static struct pci_dev *cached_dev;

--
Cheers,
Alistair.

137/1 Warrender Park Road, Edinburgh, UK.


2008-01-29 01:11:54

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: [PATCH] Force enable HPET on (some?) ICH9 boards


Patch looks good.
If BIOS does not report HPET on more of such systems we may have to add
other chipsets in ICH9 family (ICH9_8, ...) as well.

Acked-by: Venkatesh Pallipadi <[email protected]>


>-----Original Message-----
>From: Alistair John Strachan [mailto:[email protected]]
>Sent: Sunday, January 27, 2008 6:33 AM
>To: Pallipadi, Venkatesh
>Cc: Ingo Molnar; Linux Kernel Mailing List; Alistair John Strachan
>Subject: [PATCH] Force enable HPET on (some?) ICH9 boards
>
>Some consumer ICH9 boards (such as the Abit IP35 Pro) do not
>provide a BIOS
>option for enabling the HPET. The same ICH workaround used for
>6,7,8 can be
>applied to 9. Here I enable the only PCI id that was visible
>on my system.
>
>I have confirmed the HPETs work both from userspace and as a
>clocksource for
>the running kernel (2.6.24 here) after applying this patch.
>
>Force enabled HPET at base address 0xfed00000
>hpet clockevent registered
>hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
>hpet0: 4 64-bit timers, 14318180 Hz
>
>Signed-off-by: Alistair John Strachan <[email protected]>
>
>---
> arch/x86/kernel/quirks.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
>diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
>index fab30e1..150ba29 100644
>--- a/arch/x86/kernel/quirks.c
>+++ b/arch/x86/kernel/quirks.c
>@@ -162,6 +162,8 @@
>DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,
>PCI_DEVICE_ID_INTEL_ICH7_31,
> ich_force_enable_hpet);
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,
>PCI_DEVICE_ID_INTEL_ICH8_1,
> ich_force_enable_hpet);
>+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,
>PCI_DEVICE_ID_INTEL_ICH9_7,
>+ ich_force_enable_hpet);
>
>
> static struct pci_dev *cached_dev;
>
>--
>Cheers,
>Alistair.
>
>137/1 Warrender Park Road, Edinburgh, UK.
>

2008-01-30 08:37:59

by Alistair John Strachan

[permalink] [raw]
Subject: Re: [PATCH] Force enable HPET on (some?) ICH9 boards

On Tuesday 29 January 2008 01:12:33 Pallipadi, Venkatesh wrote:
> Patch looks good.
> If BIOS does not report HPET on more of such systems we may have to add
> other chipsets in ICH9 family (ICH9_8, ...) as well.
>
> Acked-by: Venkatesh Pallipadi <[email protected]>

Hi Ingo,

Are you going to pick this patch up via the x86 tree, or shall I forward it to
Andrew or trivial@?

Do you want me to re-send with Venki's ack?

--
Cheers,
Alistair.

137/1 Warrender Park Road, Edinburgh, UK.

2008-01-31 14:56:46

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] Force enable HPET on (some?) ICH9 boards


* Alistair John Strachan <[email protected]> wrote:

> Are you going to pick this patch up via the x86 tree, or shall I
> forward it to Andrew or trivial@?
>
> Do you want me to re-send with Venki's ack?

no need, we merged your improvement via x86.git and it is now in Linus's
latest tree:

commit dff244af014144e4ac87dfc5b6e450dc8832710e
Author: Alistair John Strachan <[email protected]>
Date: Wed Jan 30 13:33:39 2008 +0100

x86: force enable HPET on (some?) ICH9 boards

it should first show up in v2.6.25-rc1. Thanks,

Ingo