diff options
author | Nicholas Mc Guire <hofrat@osadl.org> | 2015-02-02 03:30:35 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-02-04 15:53:15 -0500 |
commit | 56536a7ff59ccd5cb2d9a37dce4501a432456de0 (patch) | |
tree | a5cd9a5f8115715b0ff9e02f9db87224a8f017e2 /drivers/spi | |
parent | 4b5d6aadce5e054d33719a7490076294c83d2f88 (diff) |
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: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-imx.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index 6a2ff750c206..5eaecbba06b7 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c | |||
@@ -891,6 +891,7 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx, | |||
891 | { | 891 | { |
892 | struct dma_async_tx_descriptor *desc_tx = NULL, *desc_rx = NULL; | 892 | struct dma_async_tx_descriptor *desc_tx = NULL, *desc_rx = NULL; |
893 | int ret; | 893 | int ret; |
894 | unsigned long timeout; | ||
894 | u32 dma; | 895 | u32 dma; |
895 | int left; | 896 | int left; |
896 | struct spi_master *master = spi_imx->bitbang.master; | 897 | 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 | dma_async_issue_pending(master->dma_tx); | 939 | dma_async_issue_pending(master->dma_tx); |
939 | dma_async_issue_pending(master->dma_rx); | 940 | dma_async_issue_pending(master->dma_rx); |
940 | /* Wait SDMA to finish the data transfer.*/ | 941 | /* Wait SDMA to finish the data transfer.*/ |
941 | ret = wait_for_completion_timeout(&spi_imx->dma_tx_completion, | 942 | timeout = wait_for_completion_timeout(&spi_imx->dma_tx_completion, |
942 | IMX_DMA_TIMEOUT); | 943 | IMX_DMA_TIMEOUT); |
943 | if (!ret) { | 944 | if (!timeout) { |
944 | pr_warn("%s %s: I/O Error in DMA TX\n", | 945 | pr_warn("%s %s: I/O Error in DMA TX\n", |
945 | dev_driver_string(&master->dev), | 946 | dev_driver_string(&master->dev), |
946 | dev_name(&master->dev)); | 947 | dev_name(&master->dev)); |
947 | dmaengine_terminate_all(master->dma_tx); | 948 | dmaengine_terminate_all(master->dma_tx); |
948 | } else { | 949 | } else { |
949 | ret = wait_for_completion_timeout(&spi_imx->dma_rx_completion, | 950 | timeout = wait_for_completion_timeout( |
950 | IMX_DMA_TIMEOUT); | 951 | &spi_imx->dma_rx_completion, IMX_DMA_TIMEOUT); |
951 | if (!ret) { | 952 | if (!timeout) { |
952 | pr_warn("%s %s: I/O Error in DMA RX\n", | 953 | pr_warn("%s %s: I/O Error in DMA RX\n", |
953 | dev_driver_string(&master->dev), | 954 | dev_driver_string(&master->dev), |
954 | dev_name(&master->dev)); | 955 | dev_name(&master->dev)); |
@@ -963,9 +964,9 @@ static int spi_imx_dma_transfer(struct spi_imx_data *spi_imx, | |||
963 | spi_imx->dma_finished = 1; | 964 | spi_imx->dma_finished = 1; |
964 | spi_imx->devtype_data->trigger(spi_imx); | 965 | spi_imx->devtype_data->trigger(spi_imx); |
965 | 966 | ||
966 | if (!ret) | 967 | if (!timeout) |
967 | ret = -ETIMEDOUT; | 968 | ret = -ETIMEDOUT; |
968 | else if (ret > 0) | 969 | else |
969 | ret = transfer->len; | 970 | ret = transfer->len; |
970 | 971 | ||
971 | return ret; | 972 | return ret; |