On Thu, Dec 04, 2025 at 08:05:30AM -0600, Nishanth Menon wrote:
The clock is already turned off by the runtime-PM suspend callback, so an extra clk_disable*_unprepare() is only correct when runtime-PM support is not in use.
Right, I'm pretty sure that's where the extra disable is coming from. The pm_runtime_set_active() further up the function is looking rather suspect here.
- clk_disable_unprepare(cqspi->clk);
- /* Runtime-PM suspend already disables the core clock. */
- if (ddata && (ddata->quirks & CQSPI_DISABLE_RUNTIME_PM))
clk_disable_unprepare(cqspi->clk);
This will leak the reference if runtime PM isn't enabled unfortunately, no runtime PM operations will get called. Life would be vastly simpler were that mandatory :(