[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56FC9979.1070905@electromag.com.au>
Date: Thu, 31 Mar 2016 11:28:57 +0800
From: Phil Reid <preid@...ctromag.com.au>
To: Yong Li <sdliyong@...il.com>, linus.walleij@...aro.org,
gnurou@...il.com, linux-gpio@...r.kernel.org,
linux-kernel@...r.kernel.org, alexander.stein@...tec-electronic.com
Subject: Re: [PATCH v2] gpio: pca953x: Use correct u16 value for register word
write
On 30/03/2016 2:49 PM, Yong Li wrote:
> The current implementation only uses the first byte in val,
> the second byte is always 0. Change it to use cpu_to_le16
> to write the two bytes into the register
>
> Signed-off-by: Yong Li <sdliyong@...il.com>
Reviewed-by: Phil Reid <preid@...ctromag.com.au>
> ---
> drivers/gpio/gpio-pca953x.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
> index d0d3065..e66084c 100644
> --- a/drivers/gpio/gpio-pca953x.c
> +++ b/drivers/gpio/gpio-pca953x.c
> @@ -18,6 +18,7 @@
> #include <linux/i2c.h>
> #include <linux/platform_data/pca953x.h>
> #include <linux/slab.h>
> +#include <asm/unaligned.h>
> #include <linux/of_platform.h>
> #include <linux/acpi.h>
>
> @@ -159,7 +160,7 @@ static int pca953x_write_regs(struct pca953x_chip *chip, int reg, u8 *val)
> switch (chip->chip_type) {
> case PCA953X_TYPE:
> ret = i2c_smbus_write_word_data(chip->client,
> - reg << 1, (u16) *val);
> + reg << 1, cpu_to_le16(get_unaligned((u16 *)val)));
> break;
> case PCA957X_TYPE:
> ret = i2c_smbus_write_byte_data(chip->client, reg << 1,
>
--
Regards
Phil Reid
Powered by blists - more mailing lists