Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[pandora-kernel.git] / arch / powerpc / sysdev / fsl_soc.c
index ceb5846..e983972 100644 (file)
@@ -9,7 +9,6 @@
  * option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
@@ -372,7 +371,7 @@ static int __init fsl_usb_of_init(void)
 {
        struct device_node *np;
        unsigned int i;
-       struct platform_device *usb_dev;
+       struct platform_device *usb_dev_mph = NULL, *usb_dev_dr = NULL;
        int ret;
 
        for (np = NULL, i = 0;
@@ -393,15 +392,15 @@ static int __init fsl_usb_of_init(void)
                r[1].end = np->intrs[0].line;
                r[1].flags = IORESOURCE_IRQ;
 
-               usb_dev =
-                   platform_device_register_simple("fsl-usb2-mph", i, r, 2);
-               if (IS_ERR(usb_dev)) {
-                       ret = PTR_ERR(usb_dev);
+               usb_dev_mph =
+                   platform_device_register_simple("fsl-ehci", i, r, 2);
+               if (IS_ERR(usb_dev_mph)) {
+                       ret = PTR_ERR(usb_dev_mph);
                        goto err;
                }
 
-               usb_dev->dev.coherent_dma_mask = 0xffffffffUL;
-               usb_dev->dev.dma_mask = &usb_dev->dev.coherent_dma_mask;
+               usb_dev_mph->dev.coherent_dma_mask = 0xffffffffUL;
+               usb_dev_mph->dev.dma_mask = &usb_dev_mph->dev.coherent_dma_mask;
 
                usb_data.operating_mode = FSL_USB2_MPH_HOST;
 
@@ -417,31 +416,14 @@ static int __init fsl_usb_of_init(void)
                usb_data.phy_mode = determine_usb_phy(prop);
 
                ret =
-                   platform_device_add_data(usb_dev, &usb_data,
+                   platform_device_add_data(usb_dev_mph, &usb_data,
                                             sizeof(struct
                                                    fsl_usb2_platform_data));
                if (ret)
-                       goto unreg;
+                       goto unreg_mph;
        }
 
-       return 0;
-
-unreg:
-       platform_device_unregister(usb_dev);
-err:
-       return ret;
-}
-
-arch_initcall(fsl_usb_of_init);
-
-static int __init fsl_usb_dr_of_init(void)
-{
-       struct device_node *np;
-       unsigned int i;
-       struct platform_device *usb_dev;
-       int ret;
-
-       for (np = NULL, i = 0;
+       for (np = NULL;
             (np = of_find_compatible_node(np, "usb", "fsl-usb2-dr")) != NULL;
             i++) {
                struct resource r[2];
@@ -453,21 +435,21 @@ static int __init fsl_usb_dr_of_init(void)
 
                ret = of_address_to_resource(np, 0, &r[0]);
                if (ret)
-                       goto err;
+                       goto unreg_mph;
 
                r[1].start = np->intrs[0].line;
                r[1].end = np->intrs[0].line;
                r[1].flags = IORESOURCE_IRQ;
 
-               usb_dev =
-                   platform_device_register_simple("fsl-usb2-dr", i, r, 2);
-               if (IS_ERR(usb_dev)) {
-                       ret = PTR_ERR(usb_dev);
+               usb_dev_dr =
+                   platform_device_register_simple("fsl-ehci", i, r, 2);
+               if (IS_ERR(usb_dev_dr)) {
+                       ret = PTR_ERR(usb_dev_dr);
                        goto err;
                }
 
-               usb_dev->dev.coherent_dma_mask = 0xffffffffUL;
-               usb_dev->dev.dma_mask = &usb_dev->dev.coherent_dma_mask;
+               usb_dev_dr->dev.coherent_dma_mask = 0xffffffffUL;
+               usb_dev_dr->dev.dma_mask = &usb_dev_dr->dev.coherent_dma_mask;
 
                usb_data.operating_mode = FSL_USB2_DR_HOST;
 
@@ -475,19 +457,22 @@ static int __init fsl_usb_dr_of_init(void)
                usb_data.phy_mode = determine_usb_phy(prop);
 
                ret =
-                   platform_device_add_data(usb_dev, &usb_data,
+                   platform_device_add_data(usb_dev_dr, &usb_data,
                                             sizeof(struct
                                                    fsl_usb2_platform_data));
                if (ret)
-                       goto unreg;
+                       goto unreg_dr;
        }
-
        return 0;
 
-unreg:
-       platform_device_unregister(usb_dev);
+unreg_dr:
+       if (usb_dev_dr)
+               platform_device_unregister(usb_dev_dr);
+unreg_mph:
+       if (usb_dev_mph)
+               platform_device_unregister(usb_dev_mph);
 err:
        return ret;
 }
 
-arch_initcall(fsl_usb_dr_of_init);
+arch_initcall(fsl_usb_of_init);