x86: add force_hpet boot option
authorThomas Gleixner <tglx@linutronix.de>
Fri, 19 Oct 2007 18:35:02 +0000 (20:35 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 19 Oct 2007 18:35:02 +0000 (20:35 +0200)
add force_hpet boot option.

(this will be useful to make the forced-enable quirks depend on.)

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Documentation/kernel-parameters.txt
arch/x86/kernel/hpet.c
include/asm-x86/hpet.h

index 189df0bcab99bfa1dfdeff83c1fd8d67a7fe83d3..c6859b94aaa7cbda6db38edf5e1f05a653e764d3 100644 (file)
@@ -431,8 +431,10 @@ and is between 256 and 4096 characters. It is defined in the file
                        over the 8254 in addition to over the IO-APIC. The
                        kernel tries to set a sensible default.
 
-       hpet=           [X86-32,HPET] option to disable HPET and use PIT.
-                       Format: disable
+       hpet=           [X86-32,HPET] option to control HPET usage
+                       Format: { enable (default) | disable | force }
+                       disable: disable HPET and use PIT instead
+                       force: allow force enabled of undocumented chips (ICH4, VIA)
 
        com20020=       [HW,NET] ARCnet - COM20020 chipset
                        Format:
index f8367074da0dc1919fc45049c6ccaff94e0cc2a3..22d8f00c80dc8c331f8be1efa8d0c1564400f012 100644 (file)
@@ -69,12 +69,15 @@ static inline void hpet_clear_mapping(void)
  * HPET command line enable / disable
  */
 static int boot_hpet_disable;
+int hpet_force_user;
 
 static int __init hpet_setup(char* str)
 {
        if (str) {
                if (!strncmp("disable", str, 7))
                        boot_hpet_disable = 1;
+               if (!strncmp("force", str, 5))
+                       hpet_force_user = 1;
        }
        return 1;
 }
index d4ab6db050b6cc0646e564a1a29039853bde249e..4f51519fc19912f8ff3ee2f55204698c27e3d78a 100644 (file)
@@ -64,6 +64,7 @@
 /* hpet memory map physical address */
 extern unsigned long hpet_address;
 extern unsigned long force_hpet_address;
+extern int hpet_force_user;
 extern int is_hpet_enabled(void);
 extern int hpet_enable(void);
 extern unsigned long hpet_readl(unsigned long a);