Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6.git] / arch / powerpc / platforms / 83xx / suspend.c
index 4380534..104faa8 100644 (file)
@@ -99,7 +99,7 @@ struct pmc_type {
        int has_deep_sleep;
 };
 
-static struct of_device *pmc_dev;
+static struct platform_device *pmc_dev;
 static int has_deep_sleep, deep_sleeping;
 static int pmc_irq;
 static struct mpc83xx_pmc __iomem *pmc_regs;
@@ -311,21 +311,28 @@ static int mpc83xx_is_pci_agent(void)
        return ret;
 }
 
-static struct platform_suspend_ops mpc83xx_suspend_ops = {
+static const struct platform_suspend_ops mpc83xx_suspend_ops = {
        .valid = mpc83xx_suspend_valid,
        .begin = mpc83xx_suspend_begin,
        .enter = mpc83xx_suspend_enter,
        .end = mpc83xx_suspend_end,
 };
 
-static int pmc_probe(struct of_device *ofdev,
-                     const struct of_device_id *match)
+static struct of_device_id pmc_match[];
+static int pmc_probe(struct platform_device *ofdev)
 {
-       struct device_node *np = ofdev->node;
+       const struct of_device_id *match;
+       struct device_node *np = ofdev->dev.of_node;
        struct resource res;
-       struct pmc_type *type = match->data;
+       struct pmc_type *type;
        int ret = 0;
 
+       match = of_match_device(pmc_match, &ofdev->dev);
+       if (!match)
+               return -EINVAL;
+
+       type = match->data;
+
        if (!of_device_is_available(np))
                return -ENODEV;
 
@@ -396,7 +403,7 @@ out:
        return ret;
 }
 
-static int pmc_remove(struct of_device *ofdev)
+static int pmc_remove(struct platform_device *ofdev)
 {
        return -EPERM;
 };
@@ -422,16 +429,19 @@ static struct of_device_id pmc_match[] = {
        {}
 };
 
-static struct of_platform_driver pmc_driver = {
-       .name = "mpc83xx-pmc",
-       .match_table = pmc_match,
+static struct platform_driver pmc_driver = {
+       .driver = {
+               .name = "mpc83xx-pmc",
+               .owner = THIS_MODULE,
+               .of_match_table = pmc_match,
+       },
        .probe = pmc_probe,
        .remove = pmc_remove
 };
 
 static int pmc_init(void)
 {
-       return of_register_platform_driver(&pmc_driver);
+       return platform_driver_register(&pmc_driver);
 }
 
 module_init(pmc_init);