Skip to content

Commit

Permalink
[POWERPC] PS3: Refactor ps3_repository_find_device()
Browse files Browse the repository at this point in the history
PS3: Refactor ps3_repository_find_device() to use the existing
ps3_repository_read_bus_id() routine.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Geert Uytterhoeven authored and Paul Mackerras committed Jan 25, 2008
1 parent 0a46893 commit ad7d819
Showing 1 changed file with 22 additions and 38 deletions.
60 changes: 22 additions & 38 deletions arch/powerpc/platforms/ps3/repository.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,50 +445,34 @@ int __devinit ps3_repository_find_devices(enum ps3_bus_type bus_type,

pr_debug(" -> %s:%d: find bus_type %u\n", __func__, __LINE__, bus_type);

for (repo.bus_index = 0; repo.bus_index < 10; repo.bus_index++) {
repo.bus_type = bus_type;
result = ps3_repository_find_bus(repo.bus_type, 0, &repo.bus_index);
if (result) {
pr_debug(" <- %s:%u: bus not found\n", __func__, __LINE__);
return result;
}

result = ps3_repository_read_bus_type(repo.bus_index,
&repo.bus_type);
result = ps3_repository_read_bus_id(repo.bus_index, &repo.bus_id);
if (result) {
pr_debug("%s:%d read_bus_id(%u) failed\n", __func__, __LINE__,
repo.bus_index);
return result;
}

if (result) {
pr_debug("%s:%d read_bus_type(%u) failed\n",
__func__, __LINE__, repo.bus_index);
for (repo.dev_index = 0; ; repo.dev_index++) {
result = ps3_repository_find_device(&repo);
if (result == -ENODEV) {
result = 0;
break;
} else if (result)
break;
}

if (repo.bus_type != bus_type) {
pr_debug("%s:%d: skip, bus_type %u\n", __func__,
__LINE__, repo.bus_type);
continue;
}

result = ps3_repository_read_bus_id(repo.bus_index,
&repo.bus_id);

result = callback(&repo);
if (result) {
pr_debug("%s:%d read_bus_id(%u) failed\n",
__func__, __LINE__, repo.bus_index);
continue;
}

for (repo.dev_index = 0; ; repo.dev_index++) {
result = ps3_repository_find_device(&repo);

if (result == -ENODEV) {
result = 0;
break;
} else if (result)
break;

result = callback(&repo);

if (result) {
pr_debug("%s:%d: abort at callback\n", __func__,
__LINE__);
break;
}
pr_debug("%s:%d: abort at callback\n", __func__,
__LINE__);
break;
}
break;
}

pr_debug(" <- %s:%d\n", __func__, __LINE__);
Expand Down

0 comments on commit ad7d819

Please sign in to comment.