|
@@ -76,6 +76,21 @@ static void __init estimate_frequencies(void)
|
|
|
unsigned int count, start;
|
|
|
unsigned int giccount = 0, gicstart = 0;
|
|
|
|
|
|
+#if defined (CONFIG_KVM_GUEST) && defined (CONFIG_KVM_HOST_FREQ)
|
|
|
+ unsigned int prid = read_c0_prid() & 0xffff00;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * XXXKYMA: hardwire the CPU frequency to Host Freq/4
|
|
|
+ */
|
|
|
+ count = (CONFIG_KVM_HOST_FREQ * 1000000) >> 3;
|
|
|
+ if ((prid != (PRID_COMP_MIPS | PRID_IMP_20KC)) &&
|
|
|
+ (prid != (PRID_COMP_MIPS | PRID_IMP_25KF)))
|
|
|
+ count *= 2;
|
|
|
+
|
|
|
+ mips_hpt_frequency = count;
|
|
|
+ return;
|
|
|
+#endif
|
|
|
+
|
|
|
local_irq_save(flags);
|
|
|
|
|
|
/* Start counter exactly on falling edge of update flag. */
|