MIPS: csrc-sb1250: Extract hpt cycle acquisition from sb1250_hpt_read
authorDeng-Cheng Zhu <dengcheng.zhu@imgtec.com>
Sat, 7 Mar 2015 18:30:32 +0000 (10:30 -0800)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 1 Apr 2015 15:21:33 +0000 (17:21 +0200)
This is to prepare for the upcoming read_sched_clock implementation, which
will also need to get cycles from the high precision timer.

Signed-off-by: Deng-Cheng Zhu <dengcheng.zhu@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: macro@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9486/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/csrc-sb1250.c

index 6ecb77d820631972a8bf3494ffa7b9a56098b610..662ae7cc5d6be1e0de22db18a5f0fbfb563c079b 100644 (file)
  * The HPT is free running from SB1250_HPT_VALUE down to 0 then starts over
  * again.
  */
-static cycle_t sb1250_hpt_read(struct clocksource *cs)
+static inline cycle_t sb1250_hpt_get_cycles(void)
 {
        unsigned int count;
+       void __iomem *addr;
 
-       count = G_SCD_TIMER_CNT(__raw_readq(IOADDR(A_SCD_TIMER_REGISTER(SB1250_HPT_NUM, R_SCD_TIMER_CNT))));
+       addr = IOADDR(A_SCD_TIMER_REGISTER(SB1250_HPT_NUM, R_SCD_TIMER_CNT));
+       count = G_SCD_TIMER_CNT(__raw_readq(addr));
 
        return SB1250_HPT_VALUE - count;
 }
 
+static cycle_t sb1250_hpt_read(struct clocksource *cs)
+{
+       return sb1250_hpt_get_cycles();
+}
+
 struct clocksource bcm1250_clocksource = {
        .name   = "bcm1250-counter-3",
        .rating = 200,