omap mcspi probe() doesnt call pm_runtime  disable functions
in case of failure. remove() doesnt call pm_runtime disable. This could
lead to warnings as below on subsequent insmod.

~# insmod spi-omap2-mcspi.ko
[  255.383671] omap2_mcspi omap2_mcspi.1: Unbalanced pm_runtime_enable!
...

This patch adds the pm_runtime disable() at appropriate stages.

Signed-off-by: Hebbar, Gururaja <gururaja.heb...@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajy...@ti.com>
---
 drivers/spi/spi-omap2-mcspi.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 471b0f3..6875a0b 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -1195,6 +1195,7 @@ static int __init omap2_mcspi_probe(struct 
platform_device *pdev)
 err4:
        spi_master_put(master);
 err3:
+       pm_runtime_disable(&pdev->dev);
        kfree(mcspi->dma_channels);
 err2:
        release_mem_region(r->start, resource_size(r));
@@ -1216,6 +1217,7 @@ static int __exit omap2_mcspi_remove(struct 
platform_device *pdev)
        dma_channels = mcspi->dma_channels;
 
        omap2_mcspi_disable_clocks(mcspi);
+       pm_runtime_disable(&pdev->dev);
        r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        release_mem_region(r->start, resource_size(r));
 
-- 
1.7.1


------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to