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/config.h> 13 #include <linux/linux_logo.h> 14 #include <linux/stddef.h> 15 #include <linux/module.h> 16 17 #ifdef CONFIG_M68K 18 #include <asm/setup.h> 19 #endif 20 21 #ifdef CONFIG_MIPS 22 #include <asm/bootinfo.h> 23 #endif 24 25 extern const struct linux_logo logo_linux_mono; 26 extern const struct linux_logo logo_linux_vga16; 27 extern const struct linux_logo logo_linux_clut224; 28 extern const struct linux_logo logo_dec_clut224; 29 extern const struct linux_logo logo_mac_clut224; 30 extern const struct linux_logo logo_parisc_clut224; 31 extern const struct linux_logo logo_sgi_clut224; 32 extern const struct linux_logo logo_sun_clut224; 33 extern const struct linux_logo logo_superh_mono; 34 extern const struct linux_logo logo_superh_vga16; 35 extern const struct linux_logo logo_superh_clut224; 36 extern const struct linux_logo logo_m32r_clut224; 37 38 39 const struct linux_logo *fb_find_logo(int depth) 40 { 41 const struct linux_logo *logo = NULL; 42 43 if (depth >= 1) { 44 #ifdef CONFIG_LOGO_LINUX_MONO 45 /* Generic Linux logo */ 46 logo = &logo_linux_mono; 47 #endif 48 #ifdef CONFIG_LOGO_SUPERH_MONO 49 /* SuperH Linux logo */ 50 logo = &logo_superh_mono; 51 #endif 52 } 53 54 if (depth >= 4) { 55 #ifdef CONFIG_LOGO_LINUX_VGA16 56 /* Generic Linux logo */ 57 logo = &logo_linux_vga16; 58 #endif 59 #ifdef CONFIG_LOGO_SUPERH_VGA16 60 /* SuperH Linux logo */ 61 logo = &logo_superh_vga16; 62 #endif 63 } 64 65 if (depth >= 8) { 66 #ifdef CONFIG_LOGO_LINUX_CLUT224 67 /* Generic Linux logo */ 68 logo = &logo_linux_clut224; 69 #endif 70 #ifdef CONFIG_LOGO_DEC_CLUT224 71 /* DEC Linux logo on MIPS/MIPS64 or ALPHA */ 72 #ifndef CONFIG_ALPHA 73 if (mips_machgroup == MACH_GROUP_DEC) 74 #endif 75 logo = &logo_dec_clut224; 76 #endif 77 #ifdef CONFIG_LOGO_MAC_CLUT224 78 /* Macintosh Linux logo on m68k */ 79 if (MACH_IS_MAC) 80 logo = &logo_mac_clut224; 81 #endif 82 #ifdef CONFIG_LOGO_PARISC_CLUT224 83 /* PA-RISC Linux logo */ 84 logo = &logo_parisc_clut224; 85 #endif 86 #ifdef CONFIG_LOGO_SGI_CLUT224 87 /* SGI Linux logo on MIPS/MIPS64 and VISWS */ 88 #ifndef CONFIG_X86_VISWS 89 if (mips_machgroup == MACH_GROUP_SGI) 90 #endif 91 logo = &logo_sgi_clut224; 92 #endif 93 #ifdef CONFIG_LOGO_SUN_CLUT224 94 /* Sun Linux logo */ 95 logo = &logo_sun_clut224; 96 #endif 97 #ifdef CONFIG_LOGO_SUPERH_CLUT224 98 /* SuperH Linux logo */ 99 logo = &logo_superh_clut224; 100 #endif 101 #ifdef CONFIG_LOGO_M32R_CLUT224 102 /* M32R Linux logo */ 103 logo = &logo_m32r_clut224; 104 #endif 105 } 106 return logo; 107 } 108 EXPORT_SYMBOL_GPL(fb_find_logo); 109