powerpc/time: Remove ifdef in get_dec() and set_dec()
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Thu, 1 Oct 2020 10:59:19 +0000 (10:59 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 8 Oct 2020 10:17:14 +0000 (21:17 +1100)
Move SPRN_PIT definition in reg.h.

This allows to remove ifdef in get_dec() and set_dec() and
makes them more readable.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/3c9a6eb0fc040868ac59be66f338d08fd017668d.1601549945.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/reg.h
arch/powerpc/include/asm/reg_booke.h
arch/powerpc/include/asm/time.h

index d25c357..788058a 100644 (file)
 #define SPRN_TSCR      0x399   /* Thread Switch Control Register */
 
 #define SPRN_DEC       0x016           /* Decrement Register */
+#define SPRN_PIT       0x3DB           /* Programmable Interval Timer (40x/BOOKE) */
+
 #define SPRN_DER       0x095           /* Debug Enable Register */
 #define DER_RSTE       0x40000000      /* Reset Interrupt */
 #define DER_CHSTPE     0x20000000      /* Check Stop */
index ff30f10..29a948e 100644 (file)
 #define SPRN_L1CSR1    0x3F3   /* L1 Cache Control and Status Register 1 */
 #define SPRN_MMUCSR0   0x3F4   /* MMU Control and Status Register 0 */
 #define SPRN_MMUCFG    0x3F7   /* MMU Configuration Register */
-#define SPRN_PIT       0x3DB   /* Programmable Interval Timer */
 #define SPRN_BUCSR     0x3F5   /* Branch Unit Control and Status */
 #define SPRN_L2CSR0    0x3F9   /* L2 Data Cache Control and Status Register 0 */
 #define SPRN_L2CSR1    0x3FA   /* L2 Data Cache Control and Status Register 1 */
index 410ed72..a0c8ae4 100644 (file)
@@ -100,11 +100,10 @@ static inline void set_tb(unsigned int upper, unsigned int lower)
  */
 static inline u64 get_dec(void)
 {
-#if defined(CONFIG_40x)
-       return (mfspr(SPRN_PIT));
-#else
-       return (mfspr(SPRN_DEC));
-#endif
+       if (IS_ENABLED(CONFIG_40x))
+               return mfspr(SPRN_PIT);
+
+       return mfspr(SPRN_DEC);
 }
 
 /*
@@ -114,14 +113,12 @@ static inline u64 get_dec(void)
  */
 static inline void set_dec(u64 val)
 {
-#if defined(CONFIG_40x)
-       mtspr(SPRN_PIT, (u32) val);
-#else
-#ifndef CONFIG_BOOKE
-       --val;
-#endif
-       mtspr(SPRN_DEC, val);
-#endif /* not 40x */
+       if (IS_ENABLED(CONFIG_40x))
+               mtspr(SPRN_PIT, (u32)val);
+       else if (IS_ENABLED(CONFIG_BOOKE))
+               mtspr(SPRN_DEC, val);
+       else
+               mtspr(SPRN_DEC, val - 1);
 }
 
 static inline unsigned long tb_ticks_since(unsigned long tstamp)