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 |
č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 --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; }