From: "Pallipadi, Venkatesh" <venkatesh.pallipadi@intel.com>

acpi boot time parsing changes to look for HPET


 25-akpm/arch/i386/kernel/acpi/boot.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+)

diff -puN arch/i386/kernel/acpi/boot.c~hpet-02-boot-time-parsing arch/i386/kernel/acpi/boot.c
--- 25/arch/i386/kernel/acpi/boot.c~hpet-02-boot-time-parsing	Fri Aug 29 10:51:07 2003
+++ 25-akpm/arch/i386/kernel/acpi/boot.c	Fri Aug 29 10:51:07 2003
@@ -270,6 +270,27 @@ acpi_scan_rsdp (
 	return 0;
 }
 
+#ifdef CONFIG_HPET_TIMER
+extern unsigned long hpet_address;
+
+static int __init acpi_parse_hpet(unsigned long phys, unsigned long size)
+{
+	struct acpi_table_hpet *hpet_tbl;
+
+	hpet_tbl = __va(phys);
+
+	if (hpet_tbl->addr.space_id != ACPI_SPACE_MEM) {
+		printk(KERN_WARNING PREFIX "HPET timers must be located in "
+		       "memory.\n");
+		return -1;
+	}
+
+	hpet_address = hpet_tbl->addr.addrl;
+	printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", hpet_tbl->id,
+	       hpet_address);
+	return 0;
+}
+#endif
 
 unsigned long __init
 acpi_find_rsdp (void)
@@ -459,6 +480,9 @@ acpi_boot_init (void)
 		clustered_apic_check();
 	}
 #endif
+#ifdef CONFIG_HPET_TIMER
+	acpi_table_parse(ACPI_HPET, acpi_parse_hpet);
+#endif
 
 	return 0;
 }

_