diff mbox series

spi: zynqmp_gqspi: Fix unaligned data writes issue

Message ID 5eb5b5b81b5d1ff371346c2c56086472ec4501c2.1608214369.git.michal.simek@xilinx.com
State Accepted
Commit 90217487a13f73001654e41e152303644736617b
Delegated to: Michal Simek
Headers show
Series spi: zynqmp_gqspi: Fix unaligned data writes issue | expand

Commit Message

Michal Simek Dec. 17, 2020, 2:12 p.m. UTC
From: T Karthik Reddy <t.karthik.reddy@xilinx.com>

When unaligned 3 bytes data write operation is performed, 3rd byte
is being over written by 1st byte of 3 bytes data. This patch
fixes it.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 drivers/spi/zynqmp_gqspi.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Michal Simek Jan. 5, 2021, 9:37 a.m. UTC | #1
čt 17. 12. 2020 v 15:12 odesílatel Michal Simek
<michal.simek@xilinx.com> napsal:
>
> From: T Karthik Reddy <t.karthik.reddy@xilinx.com>
>
> When unaligned 3 bytes data write operation is performed, 3rd byte
> is being over written by 1st byte of 3 bytes data. This patch
> fixes it.
>
> Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
>
>  drivers/spi/zynqmp_gqspi.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c
> index e0e668703776..a56e8b250961 100644
> --- a/drivers/spi/zynqmp_gqspi.c
> +++ b/drivers/spi/zynqmp_gqspi.c
> @@ -429,10 +429,8 @@ static int zynqmp_qspi_fill_tx_fifo(struct zynqmp_qspi_priv *priv, u32 size)
>                                 data |= GENMASK(31, 16);
>                                 break;
>                         case 3:
> -                               data = *((u16 *)buf);
> -                               buf += 2;
> -                               data |= (*((u8 *)buf) << 16);
> -                               buf += 1;
> +                               data = *buf;
> +                               buf += 3;
>                                 data |= GENMASK(31, 24);
>                                 break;
>                         }
> --
> 2.29.2
>

Applied.
M
diff mbox series

Patch

diff --git a/drivers/spi/zynqmp_gqspi.c b/drivers/spi/zynqmp_gqspi.c
index e0e668703776..a56e8b250961 100644
--- a/drivers/spi/zynqmp_gqspi.c
+++ b/drivers/spi/zynqmp_gqspi.c
@@ -429,10 +429,8 @@  static int zynqmp_qspi_fill_tx_fifo(struct zynqmp_qspi_priv *priv, u32 size)
 				data |= GENMASK(31, 16);
 				break;
 			case 3:
-				data = *((u16 *)buf);
-				buf += 2;
-				data |= (*((u8 *)buf) << 16);
-				buf += 1;
+				data = *buf;
+				buf += 3;
 				data |= GENMASK(31, 24);
 				break;
 			}