Re: [PATCH v1 09/16] iio: light: si1133: Use get_unaligned_be24()

Jonathan Cameron
2020-04-25T16:41:57Z

On Tue, 21 Apr 2020 03:31:28 +0300
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> This makes the driver code slightly easier to read.
>
> Cc: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Applied with asm/unaligned include added.

J

> ---
> drivers/iio/light/si1133.c | 16 ++++------------
> 1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/iio/light/si1133.c b/drivers/iio/light/si1133.c
> index 9174ab928880..8931a8afbafc 100644
> --- a/drivers/iio/light/si1133.c
> +++ b/drivers/iio/light/si1133.c
> @@ -104,8 +104,6 @@
> #define SI1133_LUX_BUFFER_SIZE 9
> #define SI1133_MEASURE_BUFFER_SIZE 3
>
> -#define SI1133_SIGN_BIT_INDEX 23
> -
> static const int si1133_scale_available[] = {
> 1, 2, 4, 8, 16, 32, 64, 128};
>
> @@ -633,8 +631,7 @@ static int si1133_measure(struct si1133_data *data,
> if (err)
> return err;
>
> - *val = sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
> - SI1133_SIGN_BIT_INDEX);
> + *val = sign_extend32(get_unaligned_be24(&buffer[0]), 23);
>
> return err;
> }
> @@ -723,16 +720,11 @@ static int si1133_get_lux(struct si1133_data *data, int *val)
> if (err)
> return err;
>
> - high_vis =
> - sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
> - SI1133_SIGN_BIT_INDEX);
> + high_vis = sign_extend32(get_unaligned_be24(&buffer[0]), 23);
>
> - low_vis =
> - sign_extend32((buffer[3] << 16) | (buffer[4] << 8) | buffer[5],
> - SI1133_SIGN_BIT_INDEX);
> + low_vis = sign_extend32(get_unaligned_be24(&buffer[3]), 23);
>
> - ir = sign_extend32((buffer[6] << 16) | (buffer[7] << 8) | buffer[8],
> - SI1133_SIGN_BIT_INDEX);
> + ir = sign_extend32(get_unaligned_be24(&buffer[6]), 23);
>
> if (high_vis > SI1133_ADC_THRESHOLD || ir > SI1133_ADC_THRESHOLD)
> lux = si1133_calc_polynomial(high_vis, ir,