spi: spi-geni-qcom: Set an autosuspend delay of 250 ms
authorDouglas Anderson <dianders@chromium.org>
Thu, 2 Jul 2020 00:45:08 +0000 (17:45 -0700)
committerMark Brown <broonie@kernel.org>
Tue, 7 Jul 2020 13:11:01 +0000 (14:11 +0100)
In commit 0e3b8a81f5df ("spi: spi-geni-qcom: Add interconnect
support") the spi_geni_runtime_suspend() and spi_geni_runtime_resume()
became a bit slower.  Measuring on my hardware I see numbers in the
hundreds of microseconds now.

Let's use autosuspend to help avoid some of the overhead.  Now if
we're doing a bunch of transfers we won't need to be constantly
chruning.

The number 250 ms for the autosuspend delay was picked a bit
arbitrarily, so if someone has measurements showing a better value we
could easily change this.

Fixes: 0e3b8a81f5df ("spi: spi-geni-qcom: Add interconnect support")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Akash Asthana<akashast@codeaurora.org>
Link: https://lore.kernel.org/r/20200701174506.2.I9b8f6bb1e7e6d8847e2ed2cf854ec55678db427f@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-geni-qcom.c

index e99a9d5..1d96a7f 100644 (file)
@@ -619,6 +619,8 @@ static int spi_geni_probe(struct platform_device *pdev)
        init_completion(&mas->cancel_done);
        init_completion(&mas->abort_done);
        spin_lock_init(&mas->lock);
+       pm_runtime_use_autosuspend(&pdev->dev);
+       pm_runtime_set_autosuspend_delay(&pdev->dev, 250);
        pm_runtime_enable(dev);
 
        ret = spi_geni_init(mas);