MFD: mcp-sa11x0: complain if mcp clock is left enabled
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 21 Jan 2012 18:26:17 +0000 (18:26 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 18 Feb 2012 23:15:42 +0000 (23:15 +0000)
Issue a warning if the mcp clock was left enabled by some driver when
we're suspending or tearing down the core driver for the device.  This
is an aid for debugging missing disable calls.

Acked-by: Jochen Friedrich <jochen@scram.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/mfd/mcp-sa11x0.c

index 960ebc790389706e089ee78e77846a4a7b054e86..c381436ed3de503c2fd11500b123867b082d42ef 100644 (file)
@@ -252,6 +252,10 @@ static int mcp_sa11x0_remove(struct platform_device *dev)
        struct mcp_sa11x0 *m = priv(mcp);
        struct resource *mem0, *mem1;
 
+       if (m->mccr0 & MCCR0_MCE)
+               dev_warn(&dev->dev,
+                        "device left active (missing disable call?)\n");
+
        mem0 = platform_get_resource(dev, IORESOURCE_MEM, 0);
        mem1 = platform_get_resource(dev, IORESOURCE_MEM, 1);
 
@@ -271,6 +275,9 @@ static int mcp_sa11x0_suspend(struct device *dev)
 {
        struct mcp_sa11x0 *m = priv(dev_get_drvdata(dev));
 
+       if (m->mccr0 & MCCR0_MCE)
+               dev_warn(dev, "device left active (missing disable call?)\n");
+
        writel(m->mccr0 & ~MCCR0_MCE, MCCR0(m));
 
        return 0;