Commit 7d9ad5d8 authored by Andrew Bresticker's avatar Andrew Bresticker Committed by Ralf Baechle

MIPS: Malta: Use gic_read_count() to read GIC timer

Instead of reading the GIC registers directly, use the interface the GIC
driver already exposes for reading the global timer.  Also get rid of
the unnecessary #ifdefs.
Signed-off-by: default avatarAndrew Bresticker <abrestic@chromium.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: Qais Yousef <qais.yousef@imgtec.com>
Cc: John Crispin <blogic@openwrt.org>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/8123/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent a393d930
...@@ -70,9 +70,7 @@ static void __init estimate_frequencies(void) ...@@ -70,9 +70,7 @@ static void __init estimate_frequencies(void)
{ {
unsigned long flags; unsigned long flags;
unsigned int count, start; unsigned int count, start;
#ifdef CONFIG_MIPS_GIC cycle_t giccount = 0, gicstart = 0;
unsigned int giccount = 0, gicstart = 0;
#endif
#if defined(CONFIG_KVM_GUEST) && CONFIG_KVM_GUEST_TIMER_FREQ #if defined(CONFIG_KVM_GUEST) && CONFIG_KVM_GUEST_TIMER_FREQ
mips_hpt_frequency = CONFIG_KVM_GUEST_TIMER_FREQ * 1000000; mips_hpt_frequency = CONFIG_KVM_GUEST_TIMER_FREQ * 1000000;
...@@ -87,32 +85,26 @@ static void __init estimate_frequencies(void) ...@@ -87,32 +85,26 @@ static void __init estimate_frequencies(void)
/* Initialize counters. */ /* Initialize counters. */
start = read_c0_count(); start = read_c0_count();
#ifdef CONFIG_MIPS_GIC
if (gic_present) if (gic_present)
GICREAD(GIC_REG(SHARED, GIC_SH_COUNTER_31_00), gicstart); gicstart = gic_read_count();
#endif
/* Read counter exactly on falling edge of update flag. */ /* Read counter exactly on falling edge of update flag. */
while (CMOS_READ(RTC_REG_A) & RTC_UIP); while (CMOS_READ(RTC_REG_A) & RTC_UIP);
while (!(CMOS_READ(RTC_REG_A) & RTC_UIP)); while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
count = read_c0_count(); count = read_c0_count();
#ifdef CONFIG_MIPS_GIC
if (gic_present) if (gic_present)
GICREAD(GIC_REG(SHARED, GIC_SH_COUNTER_31_00), giccount); giccount = gic_read_count();
#endif
local_irq_restore(flags); local_irq_restore(flags);
count -= start; count -= start;
mips_hpt_frequency = count; mips_hpt_frequency = count;
#ifdef CONFIG_MIPS_GIC
if (gic_present) { if (gic_present) {
giccount -= gicstart; giccount -= gicstart;
gic_frequency = giccount; gic_frequency = giccount;
} }
#endif
} }
void read_persistent_clock(struct timespec *ts) void read_persistent_clock(struct timespec *ts)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment