Skip to content

Commit

Permalink
Cell: Draw SPE helper penguin logos
Browse files Browse the repository at this point in the history
Let spu_management_ops.enumerate_spus() return the number of found SPEs
and use that information to draw some little helper penguin logos.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-By: James Simmons <jsimmons@infradead.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Geert Uytterhoeven authored and Linus Torvalds committed Jul 17, 2007
1 parent cca9a6c commit bce9451
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 4 deletions.
15 changes: 14 additions & 1 deletion arch/powerpc/platforms/cell/spu_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include <linux/mm.h>
#include <linux/io.h>
#include <linux/mutex.h>
#include <linux/linux_logo.h>
#include <asm/spu.h>
#include <asm/spu_priv1.h>
#include <asm/xmon.h>
Expand Down Expand Up @@ -656,12 +657,24 @@ static int __init init_spu_base(void)

ret = spu_enumerate_spus(create_spu);

if (ret) {
if (ret < 0) {
printk(KERN_WARNING "%s: Error initializing spus\n",
__FUNCTION__);
goto out_unregister_sysdev_class;
}

if (ret > 0) {
/*
* We cannot put the forward declaration in
* <linux/linux_logo.h> because of conflicting session type
* conflicts for const and __initdata with different compiler
* versions
*/
extern const struct linux_logo logo_spe_clut224;

fb_append_extra_logo(&logo_spe_clut224, ret);
}

xmon_register_spus(&spu_full_list);

spu_add_sysdev_attr(&attr_stat);
Expand Down
4 changes: 3 additions & 1 deletion arch/powerpc/platforms/cell/spu_manage.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ static int __init of_enumerate_spus(int (*fn)(void *data))
{
int ret;
struct device_node *node;
unsigned int n = 0;

ret = -ENODEV;
for (node = of_find_node_by_type(NULL, "spe");
Expand All @@ -289,8 +290,9 @@ static int __init of_enumerate_spus(int (*fn)(void *data))
__FUNCTION__, node->name);
break;
}
n++;
}
return ret;
return ret ? ret : n;
}

static int __init of_create_spu(struct spu *spu, void *data)
Expand Down
6 changes: 4 additions & 2 deletions arch/powerpc/platforms/ps3/spu.c
Original file line number Diff line number Diff line change
Expand Up @@ -405,11 +405,13 @@ static int __init ps3_enumerate_spus(int (*fn)(void *data))
}
}

if (result)
if (result) {
printk(KERN_WARNING "%s:%d: Error initializing spus\n",
__func__, __LINE__);
return result;
}

return result;
return num_resource_id;
}

const struct spu_management_ops spu_management_ps3_ops = {
Expand Down
1 change: 1 addition & 0 deletions drivers/video/logo/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ if LOGO
config FB_LOGO_EXTRA
bool
depends on FB
default y if SPU_BASE

config LOGO_LINUX_MONO
bool "Standard black and white Linux logo"
Expand Down

0 comments on commit bce9451

Please sign in to comment.