浏览代码

spi: qup: skip clk_disable_unprepare if the device is already runtime suspended

If the spi device is already runtime suspended, if spi_qup_suspend is
executed during suspend-to-idle or suspend-to-ram it will result in the
a splat from unpreparing a non-prepared clock.

This patch fixes the issue by executing clk_disable_unprepare conditionally
in spi_qup_suspend.

[Reworded commit message to remove irrelevant backtrace -- broonie]
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Tested-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Sudeep Holla 9 年之前
父节点
当前提交
9d04d8bc4c
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      drivers/spi/spi-qup.c

+ 4 - 2
drivers/spi/spi-qup.c

@@ -982,8 +982,10 @@ static int spi_qup_suspend(struct device *device)
 	if (ret)
 	if (ret)
 		return ret;
 		return ret;
 
 
-	clk_disable_unprepare(controller->cclk);
-	clk_disable_unprepare(controller->iclk);
+	if (!pm_runtime_suspended(device)) {
+		clk_disable_unprepare(controller->cclk);
+		clk_disable_unprepare(controller->iclk);
+	}
 	return 0;
 	return 0;
 }
 }