1 2 /* 3 * Linux logo to be displayed on boot 4 * 5 * Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu) 6 * Copyright (C) 1996,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) 7 * Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au> 8 * Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de> 9 * Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org> 10 */ 11 12 #include <linux/linux_logo.h> 13 #include <linux/stddef.h> 14 #include <linux/module.h> 15 16 #ifdef CONFIG_M68K 17 #include <asm/setup.h> 18 #endif 19 20 #ifdef CONFIG_MIPS 21 #include <asm/bootinfo.h> 22 #endif 23 24 extern const struct linux_logo logo_linux_mono; 25 extern const struct linux_logo logo_linux_vga16; 26 extern const struct linux_logo logo_linux_clut224; 27 extern const struct linux_logo logo_dec_clut224; 28 extern const struct linux_logo logo_mac_clut224; 29 extern const struct linux_logo logo_parisc_clut224; 30 extern const struct linux_logo logo_sgi_clut224; 31 extern const struct linux_logo logo_sun_clut224; 32 extern const struct linux_logo logo_superh_mono; 33 extern const struct linux_logo logo_superh_vga16; 34 extern const struct linux_logo logo_superh_clut224; 35 extern const struct linux_logo logo_m32r_clut224; 36 37 /* logo's are marked __initdata. Use __init_refok to tell 38 * modpost that it is intended that this function uses data 39 * marked __initdata. 40 */ 41 const struct linux_logo * __init_refok fb_find_logo(int depth) 42 { 43 const struct linux_logo *logo = NULL; 44 45 if (depth >= 1) { 46 #ifdef CONFIG_LOGO_LINUX_MONO 47 /* Generic Linux logo */ 48 logo = &logo_linux_mono; 49 #endif 50 #ifdef CONFIG_LOGO_SUPERH_MONO 51 /* SuperH Linux logo */ 52 logo = &logo_superh_mono; 53 #endif 54 } 55 56 if (depth >= 4) { 57 #ifdef CONFIG_LOGO_LINUX_VGA16 58 /* Generic Linux logo */ 59 logo = &logo_linux_vga16; 60 #endif 61 #ifdef CONFIG_LOGO_SUPERH_VGA16 62 /* SuperH Linux logo */ 63 logo = &logo_superh_vga16; 64 #endif 65 } 66 67 if (depth >= 8) { 68 #ifdef CONFIG_LOGO_LINUX_CLUT224 69 /* Generic Linux logo */ 70 logo = &logo_linux_clut224; 71 #endif 72 #ifdef CONFIG_LOGO_DEC_CLUT224 73 /* DEC Linux logo on MIPS/MIPS64 or ALPHA */ 74 #ifndef CONFIG_ALPHA 75 if (mips_machgroup == MACH_GROUP_DEC) 76 #endif 77 logo = &logo_dec_clut224; 78 #endif 79 #ifdef CONFIG_LOGO_MAC_CLUT224 80 /* Macintosh Linux logo on m68k */ 81 if (MACH_IS_MAC) 82 logo = &logo_mac_clut224; 83 #endif 84 #ifdef CONFIG_LOGO_PARISC_CLUT224 85 /* PA-RISC Linux logo */ 86 logo = &logo_parisc_clut224; 87 #endif 88 #ifdef CONFIG_LOGO_SGI_CLUT224 89 /* SGI Linux logo on MIPS/MIPS64 and VISWS */ 90 #ifndef CONFIG_X86_VISWS 91 if (mips_machgroup == MACH_GROUP_SGI) 92 #endif 93 logo = &logo_sgi_clut224; 94 #endif 95 #ifdef CONFIG_LOGO_SUN_CLUT224 96 /* Sun Linux logo */ 97 logo = &logo_sun_clut224; 98 #endif 99 #ifdef CONFIG_LOGO_SUPERH_CLUT224 100 /* SuperH Linux logo */ 101 logo = &logo_superh_clut224; 102 #endif 103 #ifdef CONFIG_LOGO_M32R_CLUT224 104 /* M32R Linux logo */ 105 logo = &logo_m32r_clut224; 106 #endif 107 } 108 return logo; 109 } 110 EXPORT_SYMBOL_GPL(fb_find_logo); 111