diff options
Diffstat (limited to 'arch/powerpc/platforms/powermac/setup.c')
-rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 14 |
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 | ||
670 | static int __init pmac_declare_of_platform_devices(void) | 670 | static 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) { |