btw., you might also want to look into drivers/char/hpet.c and
instrument that a bit. In particular the ioremap()s done there will show
exactly how the hpet is mapped.
In particular this bit:
if (hpet_is_known(hdp)) {
printk(KERN_DEBUG "%s: 0x%lx is busy\n",
__func__, hdp->hd_phys_address);
iounmap(hdp->hd_address);
return AE_ALREADY_EXISTS;
}
suggests that you've got multiple hpets listed by the BIOS?
that's OK - you've still got a regression.
Whether the system has a hpet listed in the BIOS data structures can be
seen in acpidump [in the pmtools package]
Even if the BIOS does not list it, the system might have hpet in the
chipset - hpet=force can be tried to force-enable it.
Ingo
--