From: Siva Durga Prasad Paladugu Date: Mon, 31 Jan 2022 05:22:37 +0000 (-0700) Subject: spi: zynq_qspi: Typecast rxbuf properly X-Git-Tag: v2022.04-rc3~9^2~25 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=255537b5adbdfa9eb0fe750c79ad089e7c0e3990;p=pandora-u-boot.git spi: zynq_qspi: Typecast rxbuf properly This patch typecasts and accesses rx buf properly as an unaligned rxbuf, typecasting with u16 and accessing it causes data abort exception and this patch fixes it. Signed-off-by: Siva Durga Prasad Paladugu Signed-off-by: Michal Simek Signed-off-by: Ashok Reddy Soma Link: https://lore.kernel.org/r/20220131052240.23403-2-ashok.reddy.soma@xilinx.com --- diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c index cf6da5340a7..34d39d66fb1 100644 --- a/drivers/spi/zynq_qspi.c +++ b/drivers/spi/zynq_qspi.c @@ -230,12 +230,16 @@ static void zynq_qspi_read_data(struct zynq_qspi_priv *priv, u32 data, u8 size) priv->rx_buf += 1; break; case 2: - *((u16 *)priv->rx_buf) = data; - priv->rx_buf += 2; + *((u8 *)priv->rx_buf) = data; + priv->rx_buf += 1; + *((u8 *)priv->rx_buf) = (u8)(data >> 8); + priv->rx_buf += 1; break; case 3: - *((u16 *)priv->rx_buf) = data; - priv->rx_buf += 2; + *((u8 *)priv->rx_buf) = data; + priv->rx_buf += 1; + *((u8 *)priv->rx_buf) = (u8)(data >> 8); + priv->rx_buf += 1; byte3 = (u8)(data >> 16); *((u8 *)priv->rx_buf) = byte3; priv->rx_buf += 1;