diff options
Diffstat (limited to 'drivers/clocksource/arm_arch_timer.c')
-rw-r--r-- | drivers/clocksource/arm_arch_timer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index 5152b3898155..4814446a0024 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c | |||
@@ -468,11 +468,11 @@ static struct cyclecounter cyclecounter = { | |||
468 | .mask = CLOCKSOURCE_MASK(56), | 468 | .mask = CLOCKSOURCE_MASK(56), |
469 | }; | 469 | }; |
470 | 470 | ||
471 | static struct timecounter timecounter; | 471 | static struct arch_timer_kvm_info arch_timer_kvm_info; |
472 | 472 | ||
473 | struct timecounter *arch_timer_get_timecounter(void) | 473 | struct arch_timer_kvm_info *arch_timer_get_kvm_info(void) |
474 | { | 474 | { |
475 | return &timecounter; | 475 | return &arch_timer_kvm_info; |
476 | } | 476 | } |
477 | 477 | ||
478 | static void __init arch_counter_register(unsigned type) | 478 | static void __init arch_counter_register(unsigned type) |
@@ -500,7 +500,8 @@ static void __init arch_counter_register(unsigned type) | |||
500 | clocksource_register_hz(&clocksource_counter, arch_timer_rate); | 500 | clocksource_register_hz(&clocksource_counter, arch_timer_rate); |
501 | cyclecounter.mult = clocksource_counter.mult; | 501 | cyclecounter.mult = clocksource_counter.mult; |
502 | cyclecounter.shift = clocksource_counter.shift; | 502 | cyclecounter.shift = clocksource_counter.shift; |
503 | timecounter_init(&timecounter, &cyclecounter, start_count); | 503 | timecounter_init(&arch_timer_kvm_info.timecounter, |
504 | &cyclecounter, start_count); | ||
504 | 505 | ||
505 | /* 56 bits minimum, so we assume worst case rollover */ | 506 | /* 56 bits minimum, so we assume worst case rollover */ |
506 | sched_clock_register(arch_timer_read_counter, 56, arch_timer_rate); | 507 | sched_clock_register(arch_timer_read_counter, 56, arch_timer_rate); |
@@ -744,6 +745,8 @@ static void __init arch_timer_init(void) | |||
744 | 745 | ||
745 | arch_timer_register(); | 746 | arch_timer_register(); |
746 | arch_timer_common_init(); | 747 | arch_timer_common_init(); |
748 | |||
749 | arch_timer_kvm_info.virtual_irq = arch_timer_ppi[VIRT_PPI]; | ||
747 | } | 750 | } |
748 | 751 | ||
749 | static void __init arch_timer_of_init(struct device_node *np) | 752 | static void __init arch_timer_of_init(struct device_node *np) |