Thread (4 messages) 4 messages, 3 authors, 2016-04-01

Re: [PATCH v2] gpio: pca953x: Use correct u16 value for register word write

From: Phil Reid <hidden>
Date: 2016-03-31 03:29:08
Also in: lkml

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 <redacted>
Reviewed-by: Phil Reid <redacted>
quoted hunk ↗ jump to hunk
---
  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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help