Hi Manish, Thanks for review. On 3 May 2016 at 15:21, Manish Badarkhe <badarkhe.manish@xxxxxxxxx> wrote: > Hi Pramod > >> @@ -715,10 +724,13 @@ static int bam_resume(struct dma_chan *chan) >> struct bam_device *bdev = bchan->bdev; >> unsigned long flag; >> >> + pm_runtime_get_sync(bdev->dev); >> spin_lock_irqsave(&bchan->vc.lock, flag); >> writel_relaxed(0, bam_addr(bdev, bchan->id, BAM_P_HALT)); >> bchan->paused = 0; >> spin_unlock_irqrestore(&bchan->vc.lock, flag); >> + pm_runtime_mark_last_busy(bdev->dev); >> + pm_runtime_put_autosuspend(bdev->dev); >> >> return 0; >> } > > Why this function simply return 'success' without any error capture? > I should check return of pm_runtime_get_sync. >> @@ -1252,16 +1278,76 @@ static int bam_dma_remove(struct platform_device *pdev) >> >> tasklet_kill(&bdev->task); >> >> + pm_runtime_get_sync(&pdev->dev); >> clk_disable_unprepare(bdev->bamclk); >> + pm_runtime_disable(&pdev->dev); >> + pm_runtime_put_noidle(&pdev->dev); >> + pm_runtime_set_suspended(&pdev->dev); >> + >> + return 0; >> +} > > Why this function simply return 'success' without any error capture? Need to handle it better. > >> +static int bam_dma_runtime_suspend(struct device *dev) >> +{ >> + struct bam_device *bdev = dev_get_drvdata(dev); >> + >> + clk_disable(bdev->bamclk); >> + >> + return 0; >> +} > > Why this function simply return 'success' without any error capture? If probe has succeeded means bdev->bamclk is not NULL and error hence clk_disable wont return anything. > > >> +#ifdef CONFIG_PM_SLEEP >> +static int bam_dma_suspend(struct device *dev) >> +{ >> + struct bam_device *bdev = dev_get_drvdata(dev); >> + >> + pm_runtime_force_suspend(dev); >> + >> + clk_unprepare(bdev->bamclk); >> >> return 0; >> } > > Why this function simply return 'success' without any error capture? Same logic applies here as well, as pm_runtime_force_suspend and clk_unprepare may not return error in our case once probe is through. > > Regards > Manish Badarkhe -- 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