Browse Source

spi: fsl-espi: fix ioread16/iowrite16 endianness

fsl_espi_read_reg16 / fsl_espi_write_reg16 are supposed to read / write
big endian values. Therefore ioread16be / iowrite16be have to be used.

Fixes: 	058234328445 ("eliminate need for linearization when writing to hardware")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Heiner Kallweit 8 years ago
parent
commit
7e2ef00330
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/spi/spi-fsl-espi.c

+ 2 - 2
drivers/spi/spi-fsl-espi.c

@@ -124,7 +124,7 @@ static inline u32 fsl_espi_read_reg(struct fsl_espi *espi, int offset)
 
 
 static inline u16 fsl_espi_read_reg16(struct fsl_espi *espi, int offset)
 static inline u16 fsl_espi_read_reg16(struct fsl_espi *espi, int offset)
 {
 {
-	return ioread16(espi->reg_base + offset);
+	return ioread16be(espi->reg_base + offset);
 }
 }
 
 
 static inline u8 fsl_espi_read_reg8(struct fsl_espi *espi, int offset)
 static inline u8 fsl_espi_read_reg8(struct fsl_espi *espi, int offset)
@@ -141,7 +141,7 @@ static inline void fsl_espi_write_reg(struct fsl_espi *espi, int offset,
 static inline void fsl_espi_write_reg16(struct fsl_espi *espi, int offset,
 static inline void fsl_espi_write_reg16(struct fsl_espi *espi, int offset,
 					u16 val)
 					u16 val)
 {
 {
-	iowrite16(val, espi->reg_base + offset);
+	iowrite16be(val, espi->reg_base + offset);
 }
 }
 
 
 static inline void fsl_espi_write_reg8(struct fsl_espi *espi, int offset,
 static inline void fsl_espi_write_reg8(struct fsl_espi *espi, int offset,