forked from Minki/linux
fbdev: move logo externs to header file
Now we have __initconst, we can finally move the external declarations for the various Linux logo structures to <linux/linux_logo.h>. James' ack dates back to the previous submission (way to long ago), when the logos were still __initdata, which caused failures on some platforms with some toolchain versions. Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Acked-by: James Simmons <jsimmons@infradead.org> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Cc: Sam Ravnborg <sam@ravnborg.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
a53c9d5b71
commit
ae52bb2384
@ -44,10 +44,7 @@
|
|||||||
#include <asm/sections.h>
|
#include <asm/sections.h>
|
||||||
#include <asm/machdep.h>
|
#include <asm/machdep.h>
|
||||||
|
|
||||||
#ifdef CONFIG_LOGO_LINUX_CLUT224
|
|
||||||
#include <linux/linux_logo.h>
|
#include <linux/linux_logo.h>
|
||||||
extern const struct linux_logo logo_linux_clut224;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Properties whose value is longer than this get excluded from our
|
* Properties whose value is longer than this get excluded from our
|
||||||
|
@ -752,17 +752,8 @@ static int __init init_spu_base(void)
|
|||||||
goto out_unregister_sysdev_class;
|
goto out_unregister_sysdev_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret > 0) {
|
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);
|
fb_append_extra_logo(&logo_spe_clut224, ret);
|
||||||
}
|
|
||||||
|
|
||||||
mutex_lock(&spu_full_list_mutex);
|
mutex_lock(&spu_full_list_mutex);
|
||||||
xmon_register_spus(&spu_full_list);
|
xmon_register_spus(&spu_full_list);
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
* sign followed by value, e.g.:
|
* sign followed by value, e.g.:
|
||||||
*
|
*
|
||||||
* static int init_variable __initdata = 0;
|
* static int init_variable __initdata = 0;
|
||||||
* static char linux_logo[] __initdata = { 0x32, 0x36, ... };
|
* static const char linux_logo[] __initconst = { 0x32, 0x36, ... };
|
||||||
*
|
*
|
||||||
* Don't forget to initialize data not at file scope, i.e. within a function,
|
* Don't forget to initialize data not at file scope, i.e. within a function,
|
||||||
* as gcc otherwise puts the data into the bss section and not into the init
|
* as gcc otherwise puts the data into the bss section and not into the init
|
||||||
|
@ -21,21 +21,6 @@
|
|||||||
#include <asm/bootinfo.h>
|
#include <asm/bootinfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern const struct linux_logo logo_linux_mono;
|
|
||||||
extern const struct linux_logo logo_linux_vga16;
|
|
||||||
extern const struct linux_logo logo_linux_clut224;
|
|
||||||
extern const struct linux_logo logo_blackfin_vga16;
|
|
||||||
extern const struct linux_logo logo_blackfin_clut224;
|
|
||||||
extern const struct linux_logo logo_dec_clut224;
|
|
||||||
extern const struct linux_logo logo_mac_clut224;
|
|
||||||
extern const struct linux_logo logo_parisc_clut224;
|
|
||||||
extern const struct linux_logo logo_sgi_clut224;
|
|
||||||
extern const struct linux_logo logo_sun_clut224;
|
|
||||||
extern const struct linux_logo logo_superh_mono;
|
|
||||||
extern const struct linux_logo logo_superh_vga16;
|
|
||||||
extern const struct linux_logo logo_superh_clut224;
|
|
||||||
extern const struct linux_logo logo_m32r_clut224;
|
|
||||||
|
|
||||||
static int nologo;
|
static int nologo;
|
||||||
module_param(nologo, bool, 0);
|
module_param(nologo, bool, 0);
|
||||||
MODULE_PARM_DESC(nologo, "Disables startup logo");
|
MODULE_PARM_DESC(nologo, "Disables startup logo");
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
* sign followed by value, e.g.:
|
* sign followed by value, e.g.:
|
||||||
*
|
*
|
||||||
* static int init_variable __initdata = 0;
|
* static int init_variable __initdata = 0;
|
||||||
* static char linux_logo[] __initdata = { 0x32, 0x36, ... };
|
* static const char linux_logo[] __initconst = { 0x32, 0x36, ... };
|
||||||
*
|
*
|
||||||
* Don't forget to initialize data not at file scope, i.e. within a function,
|
* Don't forget to initialize data not at file scope, i.e. within a function,
|
||||||
* as gcc otherwise puts the data into the bss section and not into the init
|
* as gcc otherwise puts the data into the bss section and not into the init
|
||||||
|
@ -32,6 +32,22 @@ struct linux_logo {
|
|||||||
const unsigned char *data;
|
const unsigned char *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern const struct linux_logo logo_linux_mono;
|
||||||
|
extern const struct linux_logo logo_linux_vga16;
|
||||||
|
extern const struct linux_logo logo_linux_clut224;
|
||||||
|
extern const struct linux_logo logo_blackfin_vga16;
|
||||||
|
extern const struct linux_logo logo_blackfin_clut224;
|
||||||
|
extern const struct linux_logo logo_dec_clut224;
|
||||||
|
extern const struct linux_logo logo_mac_clut224;
|
||||||
|
extern const struct linux_logo logo_parisc_clut224;
|
||||||
|
extern const struct linux_logo logo_sgi_clut224;
|
||||||
|
extern const struct linux_logo logo_sun_clut224;
|
||||||
|
extern const struct linux_logo logo_superh_mono;
|
||||||
|
extern const struct linux_logo logo_superh_vga16;
|
||||||
|
extern const struct linux_logo logo_superh_clut224;
|
||||||
|
extern const struct linux_logo logo_m32r_clut224;
|
||||||
|
extern const struct linux_logo logo_spe_clut224;
|
||||||
|
|
||||||
extern const struct linux_logo *fb_find_logo(int depth);
|
extern const struct linux_logo *fb_find_logo(int depth);
|
||||||
#ifdef CONFIG_FB_LOGO_EXTRA
|
#ifdef CONFIG_FB_LOGO_EXTRA
|
||||||
extern void fb_append_extra_logo(const struct linux_logo *logo,
|
extern void fb_append_extra_logo(const struct linux_logo *logo,
|
||||||
|
@ -237,22 +237,22 @@ static void write_header(void)
|
|||||||
fprintf(out, " * Linux logo %s\n", logoname);
|
fprintf(out, " * Linux logo %s\n", logoname);
|
||||||
fputs(" */\n\n", out);
|
fputs(" */\n\n", out);
|
||||||
fputs("#include <linux/linux_logo.h>\n\n", out);
|
fputs("#include <linux/linux_logo.h>\n\n", out);
|
||||||
fprintf(out, "static unsigned char %s_data[] __initdata = {\n",
|
fprintf(out, "static const unsigned char %s_data[] __initconst = {\n",
|
||||||
logoname);
|
logoname);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void write_footer(void)
|
static void write_footer(void)
|
||||||
{
|
{
|
||||||
fputs("\n};\n\n", out);
|
fputs("\n};\n\n", out);
|
||||||
fprintf(out, "struct linux_logo %s __initdata = {\n", logoname);
|
fprintf(out, "const struct linux_logo %s __initconst = {\n", logoname);
|
||||||
fprintf(out, " .type\t= %s,\n", logo_types[logo_type]);
|
fprintf(out, "\t.type\t\t= %s,\n", logo_types[logo_type]);
|
||||||
fprintf(out, " .width\t= %d,\n", logo_width);
|
fprintf(out, "\t.width\t\t= %d,\n", logo_width);
|
||||||
fprintf(out, " .height\t= %d,\n", logo_height);
|
fprintf(out, "\t.height\t\t= %d,\n", logo_height);
|
||||||
if (logo_type == LINUX_LOGO_CLUT224) {
|
if (logo_type == LINUX_LOGO_CLUT224) {
|
||||||
fprintf(out, " .clutsize\t= %d,\n", logo_clutsize);
|
fprintf(out, "\t.clutsize\t= %d,\n", logo_clutsize);
|
||||||
fprintf(out, " .clut\t= %s_clut,\n", logoname);
|
fprintf(out, "\t.clut\t\t= %s_clut,\n", logoname);
|
||||||
}
|
}
|
||||||
fprintf(out, " .data\t= %s_data\n", logoname);
|
fprintf(out, "\t.data\t\t= %s_data\n", logoname);
|
||||||
fputs("};\n\n", out);
|
fputs("};\n\n", out);
|
||||||
|
|
||||||
/* close logo file */
|
/* close logo file */
|
||||||
@ -374,7 +374,7 @@ static void write_logo_clut224(void)
|
|||||||
fputs("\n};\n\n", out);
|
fputs("\n};\n\n", out);
|
||||||
|
|
||||||
/* write logo clut */
|
/* write logo clut */
|
||||||
fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
|
fprintf(out, "static const unsigned char %s_clut[] __initconst = {\n",
|
||||||
logoname);
|
logoname);
|
||||||
write_hex_cnt = 0;
|
write_hex_cnt = 0;
|
||||||
for (i = 0; i < logo_clutsize; i++) {
|
for (i = 0; i < logo_clutsize; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user