diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2016-12-08 11:20:50 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-01-10 08:27:53 +0100 |
commit | 34e083ea640bd227be9c49f757032bb96b808c5e (patch) | |
tree | 3fc397f1c23ad570aacb445116cf5f4b7b53e224 /drivers/spi | |
parent | dcb880cb8518b79f900106421510275b7a87a73c (diff) | |
download | barebox-34e083ea640bd227be9c49f757032bb96b808c5e.tar.gz barebox-34e083ea640bd227be9c49f757032bb96b808c5e.tar.xz |
spi: mvebu: use wait_on_timeout instead of a loop with udelay.
This looks nicer and reduces the time to transfer 40 MB at 50 MHz from
203 seconds to 87 seconds.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/mvebu_spi.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/spi/mvebu_spi.c b/drivers/spi/mvebu_spi.c index 35a0c002aa..6921cb8cd7 100644 --- a/drivers/spi/mvebu_spi.c +++ b/drivers/spi/mvebu_spi.c @@ -233,13 +233,11 @@ static int mvebu_spi_setup(struct spi_device *spi) static inline int mvebu_spi_wait_for_read_ready(struct mvebu_spi *p) { - int timeout = 100; - while ((readl(p->base + SPI_IF_CTRL) & IF_READ_READY) == 0 && - timeout--) - udelay(1); - if (timeout < 0) - return -EIO; - return 0; + int ret; + + ret = wait_on_timeout(100 * USECOND, + readl(p->base + SPI_IF_CTRL) & IF_READ_READY); + return ret; } static int mvebu_spi_do_transfer(struct spi_device *spi, |