MFD: mcp-sa11x0: use _noirq resume methods
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 21 Jan 2012 18:03:00 +0000 (18:03 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 3 Feb 2012 17:38:13 +0000 (17:38 +0000)
The genirq code requires early access to interrupt controllers.  In
order to allow this, we need to resume the MCP via the _noirq methods
instead of the standard methods.

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

index 46167f676129c55f7fa19627817bdd29a84abbc5..420710b19f2d59848f4f7cfef72bd290a2bf810d 100644 (file)
@@ -289,7 +289,14 @@ static int mcp_sa11x0_resume(struct device *dev)
 #endif
 
 static const struct dev_pm_ops mcp_sa11x0_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(mcp_sa11x0_suspend, mcp_sa11x0_resume)
+#ifdef CONFIG_PM_SLEEP
+       .suspend = mcp_sa11x0_suspend,
+       .freeze = mcp_sa11x0_suspend,
+       .poweroff = mcp_sa11x0_suspend,
+       .resume_noirq = mcp_sa11x0_resume,
+       .thaw_noirq = mcp_sa11x0_resume,
+       .restore_noirq = mcp_sa11x0_resume,
+#endif
 };
 
 static struct platform_driver mcp_sa11x0_driver = {