From: Heiner Kallweit Date: Wed, 30 Nov 2016 19:28:09 +0000 (+0100) Subject: spi: fsl-espi: fix ioread16/iowrite16 endianness X-Git-Tag: v4.14-rc1~1665^2~7^5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e2ef003302cc797917ce0a2a32cffb4af42c99e;p=platform%2Fkernel%2Flinux-rpi.git 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 Signed-off-by: Mark Brown --- diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c index cd28329..1d332e2 100644 --- a/drivers/spi/spi-fsl-espi.c +++ b/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) { - 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) @@ -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, 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,