On Mon, Nov 9, 2015 at 3:23 PM, Jon Hunter <jonathanh@xxxxxxxxxx> wrote: > The tegra-apb DMA driver enables runtime-pm but never calls > pm_runtime_get/put and hence the runtime-pm callbacks are never invoked. > The driver manages the clocks by directly calling clk_prepare_enable() > and clk_unprepare_disable(). > > Fix this by replacing the clk_prepare_enable() and clk_disable_unprepare() > with pm_runtime_get_sync() and pm_runtime_put(), respectively. Note that > the consequence of this is that if runtime-pm is disabled, then the clocks > will remain on the entire time the driver is loaded. However, if > runtime-pm is disabled, then power is not most likely not a concern. Nitpick > @@ -1539,11 +1534,10 @@ static int tegra_dma_runtime_resume(struct device *dev) > static int tegra_dma_pm_suspend(struct device *dev) > { > struct tegra_dma *tdma = dev_get_drvdata(dev); > - int i; > - int ret; > + int i, ret; > static int tegra_dma_pm_resume(struct device *dev) > { > struct tegra_dma *tdma = dev_get_drvdata(dev); > - int i; > - int ret; > + int i, ret; Do you really need that? -- With Best Regards, Andy Shevchenko -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html