spi: xilinx: Move timeout calculation out of the loop
Timeout calculation should be out of the data loop. This patch increase spi bandwidth for 30%. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
This commit is contained in:
parent
22a240c32c
commit
999c39a45f
|
@ -149,6 +149,7 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
|
||||||
const unsigned char *txp = dout;
|
const unsigned char *txp = dout;
|
||||||
unsigned char *rxp = din;
|
unsigned char *rxp = din;
|
||||||
unsigned rxecount = 17; /* max. 16 elements in FIFO, leftover 1 */
|
unsigned rxecount = 17; /* max. 16 elements in FIFO, leftover 1 */
|
||||||
|
unsigned global_timeout;
|
||||||
|
|
||||||
debug("%s: bus:%i cs:%i bitlen:%i bytes:%i flags:%lx\n", __func__,
|
debug("%s: bus:%i cs:%i bitlen:%i bytes:%i flags:%lx\n", __func__,
|
||||||
slave->bus, slave->cs, bitlen, bytes, flags);
|
slave->bus, slave->cs, bitlen, bytes, flags);
|
||||||
|
@ -176,11 +177,12 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
|
||||||
if (flags & SPI_XFER_BEGIN)
|
if (flags & SPI_XFER_BEGIN)
|
||||||
spi_cs_activate(slave);
|
spi_cs_activate(slave);
|
||||||
|
|
||||||
while (bytes--) {
|
/* at least 1usec or greater, leftover 1 */
|
||||||
unsigned timeout = /* at least 1usec or greater, leftover 1 */
|
global_timeout = xilspi->freq > XILSPI_MAX_XFER_BITS * 1000000 ? 2 :
|
||||||
xilspi->freq > XILSPI_MAX_XFER_BITS * 1000000 ? 2 :
|
|
||||||
(XILSPI_MAX_XFER_BITS * 1000000 / xilspi->freq) + 1;
|
(XILSPI_MAX_XFER_BITS * 1000000 / xilspi->freq) + 1;
|
||||||
|
|
||||||
|
while (bytes--) {
|
||||||
|
unsigned timeout = global_timeout;
|
||||||
/* get Tx element from data out buffer and count up */
|
/* get Tx element from data out buffer and count up */
|
||||||
unsigned char d = txp ? *txp++ : CONFIG_XILINX_SPI_IDLE_VAL;
|
unsigned char d = txp ? *txp++ : CONFIG_XILINX_SPI_IDLE_VAL;
|
||||||
debug("%s: tx:%x ", __func__, d);
|
debug("%s: tx:%x ", __func__, d);
|
||||||
|
|
Loading…
Reference in New Issue