On 23 June 2016 at 19:28, Lad, Prabhakar <prabhakar.cse...@gmail.com> wrote: > During spi transfer, for example: > sspi 1:1.0 8 ff > > the rx_len values will be: > rx_len = 0 > rx_len = 4294967295
Does these number during 'sspi' or during data transfer? why rx_len is 4294967295? > > This caused a busy looping during xfer, this patch fixes it > by adding a check while reading the rx fifo > > Signed-off-by: Lad, Prabhakar <prabhakar....@racelogic.co.uk> > Cc: Michal Simek <michal.si...@xilinx.com> > Cc: Siva Durga Prasad Paladugu <siva...@xilinx.com> > Cc: Jagan Teki <jt...@openedev.com> > --- > drivers/spi/zynq_spi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/spi/zynq_spi.c b/drivers/spi/zynq_spi.c > index 09ae1be..dd3de27 100644 > --- a/drivers/spi/zynq_spi.c > +++ b/drivers/spi/zynq_spi.c > @@ -230,7 +230,7 @@ static int zynq_spi_xfer(struct udevice *dev, > unsigned int bitlen, > > /* Read the data from RX FIFO */ > status = readl(®s->isr); > - while (status & ZYNQ_SPI_IXR_RXNEMPTY_MASK) { > + while ((status & ZYNQ_SPI_IXR_RXNEMPTY_MASK) && rx_len) { > buf = readl(®s->rxdr); > if (rx_buf) > *rx_buf++ = buf; -- Jagan. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot