diff options
Diffstat (limited to 'arch/x86/lib')
-rw-r--r-- | arch/x86/lib/tsc_timer.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/lib/tsc_timer.c b/arch/x86/lib/tsc_timer.c index ceff60c40e..f091c91669 100644 --- a/arch/x86/lib/tsc_timer.c +++ b/arch/x86/lib/tsc_timer.c @@ -293,6 +293,9 @@ unsigned __attribute__((no_instrument_function)) long get_tbclk_mhz(void) { unsigned long fast_calibrate; + if (gd->arch.tsc_mhz) + return gd->arch.tsc_mhz; + fast_calibrate = try_msr_calibrate_tsc(); if (fast_calibrate) return fast_calibrate; @@ -301,6 +304,7 @@ unsigned __attribute__((no_instrument_function)) long get_tbclk_mhz(void) if (!fast_calibrate) panic("TSC frequency is ZERO"); + gd->arch.tsc_mhz = fast_calibrate; return fast_calibrate; } |