[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.1 / 0004-arm-omap-mcspi-follow-proper-pm_runtime-enable-disab.patch
1 From 0cd12bf08c6d08771e493342c704de60830785cf Mon Sep 17 00:00:00 2001
2 From: Hebbar, Gururaja <gururaja.hebbar@ti.com>
3 Date: Mon, 24 Oct 2011 15:50:27 +0530
4 Subject: [PATCH 4/5] arm:omap:mcspi: follow proper pm_runtime enable/disable sequence
6 omap mcspi probe() doesnt call pm_runtime put & disable functions
7 in case of failure. remove() doesnt call pm_runtime disable. This could
8 lead to warnings as below on subsequent insmod.
10 root@arago-armv7:~# insmod /lib/modules/3.1.0-rc8/spi-omap2-mcspi.ko
11 [ 255.383671] omap2_mcspi omap2_mcspi.1: Unbalanced pm_runtime_enable!
12 ...
14 This patch adds the pm_runtime put() & disable() at aprropriate stages.
16 Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
17 ---
18 drivers/spi/spi-omap2-mcspi.c | 3 +++
19 1 files changed, 3 insertions(+), 0 deletions(-)
21 diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
22 index f757a8e..7a8e19e 100644
23 --- a/drivers/spi/spi-omap2-mcspi.c
24 +++ b/drivers/spi/spi-omap2-mcspi.c
25 @@ -1209,6 +1209,8 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
26 err4:
27 spi_master_put(master);
28 err3:
29 + pm_runtime_put_sync(&pdev->dev);
30 + pm_runtime_disable(&pdev->dev);
31 kfree(mcspi->dma_channels);
32 err2:
33 release_mem_region(r->start, resource_size(r));
34 @@ -1230,6 +1232,7 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev)
35 dma_channels = mcspi->dma_channels;
37 omap2_mcspi_disable_clocks(mcspi);
38 + pm_runtime_disable(&pdev->dev);
39 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
40 release_mem_region(r->start, resource_size(r));
42 --
43 1.7.2.5