Re: [PATCH] rtc-pcf2123: use sign_extend32() for sign extension

From: Alexandre Belloni
Date: Tue Apr 19 2016 - 18:44:56 EST


Please always include a commit message else, I'm fine with the patch.

On 18/04/2016 at 12:17:44 +0200, Martin Kepplinger wrote :
> Signed-off-by: Martin Kepplinger <martink@xxxxxxxxx>
> ---
> drivers/rtc/rtc-pcf2123.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c
> index f22e060..b4478cc 100644
> --- a/drivers/rtc/rtc-pcf2123.c
> +++ b/drivers/rtc/rtc-pcf2123.c
> @@ -96,7 +96,7 @@
> #define CD_TMR_TE BIT(3) /* Countdown timer enable */
>
> /* PCF2123_REG_OFFSET BITS */
> -#define OFFSET_SIGN_BIT BIT(6) /* 2's complement sign bit */
> +#define OFFSET_SIGN_BIT 6 /* 2's complement sign bit */
> #define OFFSET_COARSE BIT(7) /* Coarse mode offset */
> #define OFFSET_STEP (2170) /* Offset step in parts per billion */
>
> @@ -217,7 +217,7 @@ static int pcf2123_read_offset(struct device *dev, long *offset)
> if (reg & OFFSET_COARSE)
> reg <<= 1; /* multiply by 2 and sign extend */
> else
> - reg |= (reg & OFFSET_SIGN_BIT) << 1; /* sign extend only */
> + reg = sign_extend32(reg, OFFSET_SIGN_BIT);
>
> *offset = ((long)reg) * OFFSET_STEP;
>
> --
> 2.1.4
>

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com