diff options
author | Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> | 2022-01-30 22:22:37 -0700 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2022-02-04 13:20:10 +0100 |
commit | 255537b5adbdfa9eb0fe750c79ad089e7c0e3990 (patch) | |
tree | 50f76ba8d8eadd4d8c19f6b47a10017da1d00c9c /drivers/spi | |
parent | 25a91f300578d5905029d5f44799ef71a755ff02 (diff) | |
download | u-boot-255537b5adbdfa9eb0fe750c79ad089e7c0e3990.tar.gz |
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 <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Link: https://lore.kernel.org/r/20220131052240.23403-2-ashok.reddy.soma@xilinx.com
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/zynq_qspi.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c index cf6da5340a..34d39d66fb 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; |