spi: zynqmp-gqspi: fix clock imbalance on probe failure
Subsystems (3)
PATCH RESEND 1/1 spi: zynqmp-gqspi: fix clock imbalance on probe failure
Make sure that the device is not runtime suspended before explicitly disabling the clocks on probe failure and on driver unbind to avoid a clock enable-count imbalance.
Fixes 9e3a000362ae ("spi: zynqmp: Add pm runtime support")
Cc [email protected] # 4.19
Cc Naga Sureshkumar Relli <[email protected]>
Cc Shubhrajyoti Datta <[email protected]>
Signed-off-by Johan Hovold <[email protected]>
---
Hi Mark,
This patch ended up sitting in your for-next and for-6.4 branches for a few releases but was never sent on to Linus as I reported here:
https://lore.kernel.org/lkml/[email protected]/
Now it appears to have been dropped from linux-next so resending.
Johan
drivers/spi/spi-zynqmp-gqspi.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
drivers/spi/spi-zynqmp-gqspi.c +8 -4
@@ -1340,9 +1340,9 @@ static int zynqmp_qspi_probe(struct platform_device *pdev)return 0 ; clk_dis_all: -pm_runtime_put_sync (&pdev->dev); -pm_runtime_set_suspended (&pdev->dev);pm_runtime_disable (&pdev->dev); +pm_runtime_put_noidle (&pdev->dev); +pm_runtime_set_suspended (&pdev->dev);clk_disable_unprepare (xqspi->refclk); clk_dis_pclk:clk_disable_unprepare (xqspi->pclk);
@@ -1366,11 +1366,15 @@ static void zynqmp_qspi_remove(struct platform_device *pdev) {struct zynqmp_qspi *xqspi =platform_get_drvdata (pdev); +pm_runtime_get_sync (&pdev->dev); +zynqmp_gqspi_write (xqspi,GQSPI_EN_OFST ,0x0 ); + +pm_runtime_disable (&pdev->dev); +pm_runtime_put_noidle (&pdev->dev); +pm_runtime_set_suspended (&pdev->dev);clk_disable_unprepare (xqspi->refclk);clk_disable_unprepare (xqspi->pclk); -pm_runtime_set_suspended (&pdev->dev); -pm_runtime_disable (&pdev->dev); }MODULE_DEVICE_TABLE (of, zynqmp_qspi_of_match);
Signature · 1 line
2.41.0