From: Bjorn Helgaas I think the HPET driver should announce the hardware it claims. Here's a patch that prints this: hpet0: at MMIO 0xc0000ffffc002000, IRQs 74, 75, 76 hpet0: 4ns tick, 3 64-bit timers hpet1: at MMIO 0xc0000ffffc082000, IRQs 77, 78, 79 hpet1: 4ns tick, 3 64-bit timers This has been acked by Bob. I haven't heard from Venkatesh. Print basic information (MMIO address, IRQs used, tick rate, number of timers) when claiming an HPET device. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton --- 25-akpm/drivers/char/hpet.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletion(-) diff -puN drivers/char/hpet.c~announce-hpet-devices-claimed drivers/char/hpet.c --- 25/drivers/char/hpet.c~announce-hpet-devices-claimed Wed Sep 1 15:10:58 2004 +++ 25-akpm/drivers/char/hpet.c Wed Sep 1 15:10:58 2004 @@ -759,6 +759,7 @@ int __init hpet_alloc(struct hpet_data * size_t siz; struct hpet *hpet; static struct hpets *last __initdata = (struct hpets *)0; + unsigned long ns; /* * hpet_alloc can be called by platform dependent code. @@ -810,6 +811,18 @@ int __init hpet_alloc(struct hpet_data * hpetp->hp_period = (cap & HPET_COUNTER_CLK_PERIOD_MASK) >> HPET_COUNTER_CLK_PERIOD_SHIFT; + printk(KERN_INFO "hpet%d: at MMIO 0x%p, IRQ%s", + hpetp->hp_which, hpet, hpetp->hp_ntimer > 1 ? "s" : ""); + for (i = 0; i < hpetp->hp_ntimer; i++) + printk("%s %d", i > 0 ? "," : "", hdp->hd_irq[i]); + printk("\n"); + + ns = hpetp->hp_period; /* femptoseconds, 10^-15 */ + do_div(ns, 1000000); /* convert to nanoseconds, 10^-9 */ + printk(KERN_INFO "hpet%d: %ldns tick, %d %d-bit timers\n", + hpetp->hp_which, ns, hpetp->hp_ntimer, + cap & HPET_COUNTER_SIZE_MASK ? 64 : 32); + mcfg = readq(&hpet->hpet_config); if ((mcfg & HPET_ENABLE_CNF_MASK) == 0) { write_counter(0L, &hpet->hpet_mc); @@ -916,7 +929,6 @@ static int __init hpet_acpi_remove(struc static struct acpi_driver hpet_acpi_driver __initdata = { .name = "hpet", - .class = "", .ids = "PNP0103", .ops = { .add = hpet_acpi_add, _