Unverified Commit 9d535414 authored by Alain Volmat's avatar Alain Volmat Committed by Mark Brown
Browse files

spi: stm32: enable pm_runtime autosuspend



This commit enables the pm_runtime autosuspend
and sets a 1ms autosuspend delay.

Signed-off-by: default avatarAlain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/1625646426-5826-3-git-send-email-alain.volmat@foss.st.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent da18edb1
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@
#define SPI_3WIRE_TX		3
#define SPI_3WIRE_RX		4

#define STM32_SPI_AUTOSUSPEND_DELAY		1	/* 1 ms */

/*
 * use PIO for small transfers, avoiding DMA setup/teardown overhead for drivers
 * without fifo buffers.
@@ -1927,6 +1929,9 @@ static int stm32_spi_probe(struct platform_device *pdev)
	if (spi->dma_tx || spi->dma_rx)
		master->can_dma = stm32_spi_can_dma;

	pm_runtime_set_autosuspend_delay(&pdev->dev,
					 STM32_SPI_AUTOSUSPEND_DELAY);
	pm_runtime_use_autosuspend(&pdev->dev);
	pm_runtime_set_active(&pdev->dev);
	pm_runtime_get_noresume(&pdev->dev);
	pm_runtime_enable(&pdev->dev);
@@ -1938,6 +1943,9 @@ static int stm32_spi_probe(struct platform_device *pdev)
		goto err_pm_disable;
	}

	pm_runtime_mark_last_busy(&pdev->dev);
	pm_runtime_put_autosuspend(&pdev->dev);

	dev_info(&pdev->dev, "driver initialized\n");

	return 0;
@@ -1946,6 +1954,7 @@ static int stm32_spi_probe(struct platform_device *pdev)
	pm_runtime_disable(&pdev->dev);
	pm_runtime_put_noidle(&pdev->dev);
	pm_runtime_set_suspended(&pdev->dev);
	pm_runtime_dont_use_autosuspend(&pdev->dev);
err_dma_release:
	if (spi->dma_tx)
		dma_release_channel(spi->dma_tx);
@@ -1970,6 +1979,8 @@ static int stm32_spi_remove(struct platform_device *pdev)
	pm_runtime_disable(&pdev->dev);
	pm_runtime_put_noidle(&pdev->dev);
	pm_runtime_set_suspended(&pdev->dev);
	pm_runtime_dont_use_autosuspend(&pdev->dev);

	if (master->dma_tx)
		dma_release_channel(master->dma_tx);
	if (master->dma_rx)