1165535Sjkoshy/* SPDX-License-Identifier: GPL-2.0 */
2165535Sjkoshy#ifndef _LINUX_LINUX_LOGO_H
3165535Sjkoshy#define _LINUX_LINUX_LOGO_H
4165535Sjkoshy
5165535Sjkoshy/*
6165535Sjkoshy *  Linux logo to be displayed on boot
7165535Sjkoshy *
8165535Sjkoshy *  Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
9165535Sjkoshy *  Copyright (C) 1996,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
10165535Sjkoshy *  Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
11165535Sjkoshy *  Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12165535Sjkoshy *  Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
13165535Sjkoshy *
14165535Sjkoshy *  Serial_console ascii image can be any size,
15165535Sjkoshy *  but should contain %s to display the version
16165535Sjkoshy */
17165535Sjkoshy
18165535Sjkoshy#include <linux/init.h>
19165535Sjkoshy
20165535Sjkoshy
21165535Sjkoshy#define LINUX_LOGO_MONO		1	/* monochrome black/white */
22165535Sjkoshy#define LINUX_LOGO_VGA16	2	/* 16 colors VGA text palette */
23165535Sjkoshy#define LINUX_LOGO_CLUT224	3	/* 224 colors */
24165535Sjkoshy#define LINUX_LOGO_GRAY256	4	/* 256 levels grayscale */
25165535Sjkoshy
26210345Skaiw
27206622Suqsstruct linux_logo {
28165535Sjkoshy	int type;			/* one of LINUX_LOGO_* */
29165535Sjkoshy	unsigned int width;
30165535Sjkoshy	unsigned int height;
31165535Sjkoshy	unsigned int clutsize;		/* LINUX_LOGO_CLUT224 only */
32165535Sjkoshy	const unsigned char *clut;	/* LINUX_LOGO_CLUT224 only */
33165535Sjkoshy	const unsigned char *data;
34165535Sjkoshy};
35165535Sjkoshy
36165535Sjkoshyextern const struct linux_logo logo_linux_mono;
37165535Sjkoshyextern const struct linux_logo logo_linux_vga16;
38165535Sjkoshyextern const struct linux_logo logo_linux_clut224;
39210345Skaiwextern const struct linux_logo logo_dec_clut224;
40210345Skaiwextern const struct linux_logo logo_mac_clut224;
41210345Skaiwextern const struct linux_logo logo_parisc_clut224;
42210345Skaiwextern const struct linux_logo logo_sgi_clut224;
43210345Skaiwextern const struct linux_logo logo_sun_clut224;
44165535Sjkoshyextern const struct linux_logo logo_superh_mono;
45165535Sjkoshyextern const struct linux_logo logo_superh_vga16;
46165535Sjkoshyextern const struct linux_logo logo_superh_clut224;
47165535Sjkoshyextern const struct linux_logo logo_spe_clut224;
48165535Sjkoshy
49165535Sjkoshyextern const struct linux_logo *fb_find_logo(int depth);
50165535Sjkoshy#ifdef CONFIG_FB_LOGO_EXTRA
51165535Sjkoshyextern void fb_append_extra_logo(const struct linux_logo *logo,
52165535Sjkoshy				 unsigned int n);
53165535Sjkoshy#else
54165535Sjkoshystatic inline void fb_append_extra_logo(const struct linux_logo *logo,
55165535Sjkoshy					unsigned int n)
56165535Sjkoshy{}
57165535Sjkoshy#endif
58165535Sjkoshy
59165535Sjkoshy#endif /* _LINUX_LINUX_LOGO_H */
60165535Sjkoshy