Cell: Draw SPE helper penguin logos
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>
This commit is contained in:
parent
cca9a6cc58
commit
bce9451310
4 changed files with 22 additions and 4 deletions
|
@ -31,6 +31,7 @@
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
|
#include <linux/linux_logo.h>
|
||||||
#include <asm/spu.h>
|
#include <asm/spu.h>
|
||||||
#include <asm/spu_priv1.h>
|
#include <asm/spu_priv1.h>
|
||||||
#include <asm/xmon.h>
|
#include <asm/xmon.h>
|
||||||
|
@ -656,12 +657,24 @@ static int __init init_spu_base(void)
|
||||||
|
|
||||||
ret = spu_enumerate_spus(create_spu);
|
ret = spu_enumerate_spus(create_spu);
|
||||||
|
|
||||||
if (ret) {
|
if (ret < 0) {
|
||||||
printk(KERN_WARNING "%s: Error initializing spus\n",
|
printk(KERN_WARNING "%s: Error initializing spus\n",
|
||||||
__FUNCTION__);
|
__FUNCTION__);
|
||||||
goto out_unregister_sysdev_class;
|
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);
|
xmon_register_spus(&spu_full_list);
|
||||||
|
|
||||||
spu_add_sysdev_attr(&attr_stat);
|
spu_add_sysdev_attr(&attr_stat);
|
||||||
|
|
|
@ -279,6 +279,7 @@ static int __init of_enumerate_spus(int (*fn)(void *data))
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct device_node *node;
|
struct device_node *node;
|
||||||
|
unsigned int n = 0;
|
||||||
|
|
||||||
ret = -ENODEV;
|
ret = -ENODEV;
|
||||||
for (node = of_find_node_by_type(NULL, "spe");
|
for (node = of_find_node_by_type(NULL, "spe");
|
||||||
|
@ -289,8 +290,9 @@ static int __init of_enumerate_spus(int (*fn)(void *data))
|
||||||
__FUNCTION__, node->name);
|
__FUNCTION__, node->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
n++;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret ? ret : n;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init of_create_spu(struct spu *spu, void *data)
|
static int __init of_create_spu(struct spu *spu, void *data)
|
||||||
|
|
|
@ -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",
|
printk(KERN_WARNING "%s:%d: Error initializing spus\n",
|
||||||
__func__, __LINE__);
|
__func__, __LINE__);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return num_resource_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct spu_management_ops spu_management_ps3_ops = {
|
const struct spu_management_ops spu_management_ps3_ops = {
|
||||||
|
|
|
@ -13,6 +13,7 @@ if LOGO
|
||||||
config FB_LOGO_EXTRA
|
config FB_LOGO_EXTRA
|
||||||
bool
|
bool
|
||||||
depends on FB
|
depends on FB
|
||||||
|
default y if SPU_BASE
|
||||||
|
|
||||||
config LOGO_LINUX_MONO
|
config LOGO_LINUX_MONO
|
||||||
bool "Standard black and white Linux logo"
|
bool "Standard black and white Linux logo"
|
||||||
|
|
Loading…
Reference in a new issue