Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock
[pandora-kernel.git] / arch / arm / mach-omap2 / hwspinlock.c
index 06d4a80..454dfce 100644 (file)
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/err.h>
+#include <linux/hwspinlock.h>
 
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 
-struct omap_device_pm_latency omap_spinlock_latency[] = {
-       {
-               .deactivate_func = omap_device_idle_hwmods,
-               .activate_func   = omap_device_enable_hwmods,
-               .flags = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
-       }
+static struct hwspinlock_pdata omap_hwspinlock_pdata __initdata = {
+       .base_id = 0,
 };
 
 int __init hwspinlocks_init(void)
 {
        int retval = 0;
        struct omap_hwmod *oh;
-       struct omap_device *od;
+       struct platform_device *pdev;
        const char *oh_name = "spinlock";
        const char *dev_name = "omap_hwspinlock";
 
@@ -48,13 +45,13 @@ int __init hwspinlocks_init(void)
        if (oh == NULL)
                return -EINVAL;
 
-       od = omap_device_build(dev_name, 0, oh, NULL, 0,
-                               omap_spinlock_latency,
-                               ARRAY_SIZE(omap_spinlock_latency), false);
-       if (IS_ERR(od)) {
+       pdev = omap_device_build(dev_name, 0, oh, &omap_hwspinlock_pdata,
+                               sizeof(struct hwspinlock_pdata),
+                               NULL, 0, false);
+       if (IS_ERR(pdev)) {
                pr_err("Can't build omap_device for %s:%s\n", dev_name,
                                                                oh_name);
-               retval = PTR_ERR(od);
+               retval = PTR_ERR(pdev);
        }
 
        return retval;