aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc
diff options
context:
space:
mode:
authorMartin Kepplinger <martink@posteo.de>2016-04-18 06:17:44 -0400
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>2016-06-04 09:50:44 -0400
commit82df3e045d8cce5eaeb9bf1ed1d8d8841b04a41a (patch)
treee55773fe9fbcde4c4e5ed9f57df685d9133f1551 /drivers/rtc
parentc5776dec8f2a90a0aa9e197c2900f68fda8dd978 (diff)
rtc: pcf2123: use sign_extend32() for sign extension
Use sign_extend32() instead of open coding sign extension. Signed-off-by: Martin Kepplinger <martink@posteo.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-pcf2123.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c
index f22e060709e5..b4478cc92b55 100644
--- a/drivers/rtc/rtc-pcf2123.c
+++ b/drivers/rtc/rtc-pcf2123.c
@@ -96,7 +96,7 @@
96#define CD_TMR_TE BIT(3) /* Countdown timer enable */ 96#define CD_TMR_TE BIT(3) /* Countdown timer enable */
97 97
98/* PCF2123_REG_OFFSET BITS */ 98/* PCF2123_REG_OFFSET BITS */
99#define OFFSET_SIGN_BIT BIT(6) /* 2's complement sign bit */ 99#define OFFSET_SIGN_BIT 6 /* 2's complement sign bit */
100#define OFFSET_COARSE BIT(7) /* Coarse mode offset */ 100#define OFFSET_COARSE BIT(7) /* Coarse mode offset */
101#define OFFSET_STEP (2170) /* Offset step in parts per billion */ 101#define OFFSET_STEP (2170) /* Offset step in parts per billion */
102 102
@@ -217,7 +217,7 @@ static int pcf2123_read_offset(struct device *dev, long *offset)
217 if (reg & OFFSET_COARSE) 217 if (reg & OFFSET_COARSE)
218 reg <<= 1; /* multiply by 2 and sign extend */ 218 reg <<= 1; /* multiply by 2 and sign extend */
219 else 219 else
220 reg |= (reg & OFFSET_SIGN_BIT) << 1; /* sign extend only */ 220 reg = sign_extend32(reg, OFFSET_SIGN_BIT);
221 221
222 *offset = ((long)reg) * OFFSET_STEP; 222 *offset = ((long)reg) * OFFSET_STEP;
223 223