blob: 788fa812c871a851c457d61834adac900445c5ec [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001
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
25extern const struct linux_logo logo_linux_mono;
26extern const struct linux_logo logo_linux_vga16;
27extern const struct linux_logo logo_linux_clut224;
28extern const struct linux_logo logo_dec_clut224;
29extern const struct linux_logo logo_mac_clut224;
30extern const struct linux_logo logo_parisc_clut224;
31extern const struct linux_logo logo_sgi_clut224;
32extern const struct linux_logo logo_sun_clut224;
33extern const struct linux_logo logo_superh_mono;
34extern const struct linux_logo logo_superh_vga16;
35extern const struct linux_logo logo_superh_clut224;
Hirokazu Takata316240f2005-07-07 17:59:32 -070036extern const struct linux_logo logo_m32r_clut224;
Linus Torvalds1da177e2005-04-16 15:20:36 -070037
38
39const 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
Hirokazu Takata316240f2005-07-07 17:59:32 -0700101#ifdef CONFIG_LOGO_M32R_CLUT224
102 /* M32R Linux logo */
103 logo = &logo_m32r_clut224;
104#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -0700105 }
106 return logo;
107}
108EXPORT_SYMBOL_GPL(fb_find_logo);