Commit 56536a7f authored by Nicholas Mc Guire's avatar Nicholas Mc Guire Committed by Mark Brown

spi: spi-imx: cleanup wait_for_completion handling

return type of wait_for_completion_timeout is unsigned long not int and
always returns >=0 , this patch adds a suitable return variable and
simplifies the return value checking as there is no < 0 case.
Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 4b5d6aad
...@@ -891,6 +891,7 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx, ...@@ -891,6 +891,7 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx,
{ {
struct dma_async_tx_descriptor *desc_tx = NULL, *desc_rx = NULL; struct dma_async_tx_descriptor *desc_tx = NULL, *desc_rx = NULL;
int ret; int ret;
unsigned long timeout;
u32 dma; u32 dma;
int left; int left;
struct spi_master *master = spi_imx->bitbang.master; struct spi_master *master = spi_imx->bitbang.master;
...@@ -938,17 +939,17 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx, ...@@ -938,17 +939,17 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx,
dma_async_issue_pending(master->dma_tx); dma_async_issue_pending(master->dma_tx);
dma_async_issue_pending(master->dma_rx); dma_async_issue_pending(master->dma_rx);
/* Wait SDMA to finish the data transfer.*/ /* Wait SDMA to finish the data transfer.*/
ret = wait_for_completion_timeout(&spi_imx->dma_tx_completion, timeout = wait_for_completion_timeout(&spi_imx->dma_tx_completion,
IMX_DMA_TIMEOUT); IMX_DMA_TIMEOUT);
if (!ret) { if (!timeout) {
pr_warn("%s %s: I/O Error in DMA TX\n", pr_warn("%s %s: I/O Error in DMA TX\n",
dev_driver_string(&master->dev), dev_driver_string(&master->dev),
dev_name(&master->dev)); dev_name(&master->dev));
dmaengine_terminate_all(master->dma_tx); dmaengine_terminate_all(master->dma_tx);
} else { } else {
ret = wait_for_completion_timeout(&spi_imx->dma_rx_completion, timeout = wait_for_completion_timeout(
IMX_DMA_TIMEOUT); &spi_imx->dma_rx_completion, IMX_DMA_TIMEOUT);
if (!ret) { if (!timeout) {
pr_warn("%s %s: I/O Error in DMA RX\n", pr_warn("%s %s: I/O Error in DMA RX\n",
dev_driver_string(&master->dev), dev_driver_string(&master->dev),
dev_name(&master->dev)); dev_name(&master->dev));
...@@ -963,9 +964,9 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx, ...@@ -963,9 +964,9 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx,
spi_imx->dma_finished = 1; spi_imx->dma_finished = 1;
spi_imx->devtype_data->trigger(spi_imx); spi_imx->devtype_data->trigger(spi_imx);
if (!ret) if (!timeout)
ret = -ETIMEDOUT; ret = -ETIMEDOUT;
else if (ret > 0) else
ret = transfer->len; ret = transfer->len;
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment