Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+8 −7
Original line number Original line Diff line number Diff line
@@ -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,
	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,
	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;