Re: [PATCH] Blacklist Dell Optiplex 320 from using the HPET

Thomas Gleixner
2007-05-05T15:24:47Z

Guilherme,

On Fri, 2007-05-04 at 16:27 -0700, john stultz wrote:
> > Before going to hard to maintain DMI black lists we should first check
> > if it's a more general problem and can't it be solved better? Most likely
> > that system isn't the one with this issue and I don't want to apply
> > DMI patches forever.
>
> We can give it a whirl, I just didn't want to add yet another "compare
> with some other counter that may or may not work" check. In this case,
> probably reading three times in a row and getting the same result would
> be a clearly broken box.

can you please undo John's patch and check whether the patch below works
for you.

Thanks,

tglx

Index: linux-2.6.21/arch/i386/kernel/hpet.c
===================================================================
--- linux-2.6.21.orig/arch/i386/kernel/hpet.c
+++ linux-2.6.21/arch/i386/kernel/hpet.c
@@ -231,6 +231,7 @@ int __init hpet_enable(void)
{
unsigned long id;
uint64_t hpet_freq;
+ cycle_t t1;
u64 tmp;

if (!is_hpet_capable())
@@ -278,6 +279,14 @@ int __init hpet_enable(void)
/* Start the counter */
hpet_start_counter();

+ /* Verify whether hpet counter works */
+ t1 = hpet_read();
+ udelay(50);
+ if (t1 == hpet_read()) {
+ printk(KERN_WARNING "HPET counter is defect\n");
+ goto out_nohpet;
+ }
+
/* Initialize and register HPET clocksource
*
* hpet period is in femto seconds per cycle