diff options
Diffstat (limited to 'arch/mips/mti-malta')
-rw-r--r-- | arch/mips/mti-malta/Platform | 6 | ||||
-rw-r--r-- | arch/mips/mti-malta/malta-time.c | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/arch/mips/mti-malta/Platform b/arch/mips/mti-malta/Platform index 5b548b5a4fcf..2cc72c9b38e3 100644 --- a/arch/mips/mti-malta/Platform +++ b/arch/mips/mti-malta/Platform | |||
@@ -3,5 +3,9 @@ | |||
3 | # | 3 | # |
4 | platform-$(CONFIG_MIPS_MALTA) += mti-malta/ | 4 | platform-$(CONFIG_MIPS_MALTA) += mti-malta/ |
5 | cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta | 5 | cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta |
6 | load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 | 6 | ifdef CONFIG_KVM_GUEST |
7 | load-$(CONFIG_MIPS_MALTA) += 0x0000000040100000 | ||
8 | else | ||
9 | load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 | ||
10 | endif | ||
7 | all-$(CONFIG_MIPS_MALTA) := $(COMPRESSION_FNAME).bin | 11 | all-$(CONFIG_MIPS_MALTA) := $(COMPRESSION_FNAME).bin |
diff --git a/arch/mips/mti-malta/malta-time.c b/arch/mips/mti-malta/malta-time.c index a144b89cf9ba..bc6ac00c0d57 100644 --- a/arch/mips/mti-malta/malta-time.c +++ b/arch/mips/mti-malta/malta-time.c | |||
@@ -76,6 +76,21 @@ static void __init estimate_frequencies(void) | |||
76 | unsigned int count, start; | 76 | unsigned int count, start; |
77 | unsigned int giccount = 0, gicstart = 0; | 77 | unsigned int giccount = 0, gicstart = 0; |
78 | 78 | ||
79 | #if defined (CONFIG_KVM_GUEST) && defined (CONFIG_KVM_HOST_FREQ) | ||
80 | unsigned int prid = read_c0_prid() & 0xffff00; | ||
81 | |||
82 | /* | ||
83 | * XXXKYMA: hardwire the CPU frequency to Host Freq/4 | ||
84 | */ | ||
85 | count = (CONFIG_KVM_HOST_FREQ * 1000000) >> 3; | ||
86 | if ((prid != (PRID_COMP_MIPS | PRID_IMP_20KC)) && | ||
87 | (prid != (PRID_COMP_MIPS | PRID_IMP_25KF))) | ||
88 | count *= 2; | ||
89 | |||
90 | mips_hpt_frequency = count; | ||
91 | return; | ||
92 | #endif | ||
93 | |||
79 | local_irq_save(flags); | 94 | local_irq_save(flags); |
80 | 95 | ||
81 | /* Start counter exactly on falling edge of update flag. */ | 96 | /* Start counter exactly on falling edge of update flag. */ |