Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Heiner Kallweit and committed by
Mark Brown
7e2ef003 d54ef057

+2 -2
+2 -2
drivers/spi/spi-fsl-espi.c
··· 124 124 125 125 static inline u16 fsl_espi_read_reg16(struct fsl_espi *espi, int offset) 126 126 { 127 - return ioread16(espi->reg_base + offset); 127 + return ioread16be(espi->reg_base + offset); 128 128 } 129 129 130 130 static inline u8 fsl_espi_read_reg8(struct fsl_espi *espi, int offset) ··· 141 141 static inline void fsl_espi_write_reg16(struct fsl_espi *espi, int offset, 142 142 u16 val) 143 143 { 144 - iowrite16(val, espi->reg_base + offset); 144 + iowrite16be(val, espi->reg_base + offset); 145 145 } 146 146 147 147 static inline void fsl_espi_write_reg8(struct fsl_espi *espi, int offset,