aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/powermac
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/powermac')
-rw-r--r--arch/powerpc/platforms/powermac/setup.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index da0cb165dfc6..50f5dd787900 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -669,7 +669,7 @@ static int pmac_check_legacy_ioport(unsigned int baseport)
669 669
670static int __init pmac_declare_of_platform_devices(void) 670static int __init pmac_declare_of_platform_devices(void)
671{ 671{
672 struct device_node *np; 672 struct device_node *np, *npp;
673 673
674 np = find_devices("uni-n"); 674 np = find_devices("uni-n");
675 if (np) { 675 if (np) {
@@ -687,14 +687,16 @@ static int __init pmac_declare_of_platform_devices(void)
687 if (np) 687 if (np)
688 of_platform_device_create(np, "platinum", NULL); 688 of_platform_device_create(np, "platinum", NULL);
689 689
690 np = find_devices("u3"); 690 npp = of_find_node_by_name(NULL, "u3");
691 if (np) { 691 if (npp) {
692 for (np = np->child; np != NULL; np = np->sibling) 692 for (np = NULL; (np = of_get_next_child(npp, np)) != NULL;) {
693 if (strncmp(np->name, "i2c", 3) == 0) { 693 if (strncmp(np->name, "i2c", 3) == 0) {
694 of_platform_device_create(np, "u3-i2c", 694 of_platform_device_create(np, "u3-i2c", NULL);
695 NULL); 695 of_node_put(np);
696 break; 696 break;
697 } 697 }
698 }
699 of_node_put(npp);
698 } 700 }
699 np = of_find_node_by_type(NULL, "smu"); 701 np = of_find_node_by_type(NULL, "smu");
700 if (np) { 702 if (np) {