18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _LINUX_LINUX_LOGO_H
38c2ecf20Sopenharmony_ci#define _LINUX_LINUX_LOGO_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci/*
68c2ecf20Sopenharmony_ci *  Linux logo to be displayed on boot
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci *  Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
98c2ecf20Sopenharmony_ci *  Copyright (C) 1996,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
108c2ecf20Sopenharmony_ci *  Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
118c2ecf20Sopenharmony_ci *  Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
128c2ecf20Sopenharmony_ci *  Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
138c2ecf20Sopenharmony_ci *
148c2ecf20Sopenharmony_ci *  Serial_console ascii image can be any size,
158c2ecf20Sopenharmony_ci *  but should contain %s to display the version
168c2ecf20Sopenharmony_ci */
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci#include <linux/init.h>
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci#define LINUX_LOGO_MONO		1	/* monochrome black/white */
228c2ecf20Sopenharmony_ci#define LINUX_LOGO_VGA16	2	/* 16 colors VGA text palette */
238c2ecf20Sopenharmony_ci#define LINUX_LOGO_CLUT224	3	/* 224 colors */
248c2ecf20Sopenharmony_ci#define LINUX_LOGO_GRAY256	4	/* 256 levels grayscale */
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_cistruct linux_logo {
288c2ecf20Sopenharmony_ci	int type;			/* one of LINUX_LOGO_* */
298c2ecf20Sopenharmony_ci	unsigned int width;
308c2ecf20Sopenharmony_ci	unsigned int height;
318c2ecf20Sopenharmony_ci	unsigned int clutsize;		/* LINUX_LOGO_CLUT224 only */
328c2ecf20Sopenharmony_ci	const unsigned char *clut;	/* LINUX_LOGO_CLUT224 only */
338c2ecf20Sopenharmony_ci	const unsigned char *data;
348c2ecf20Sopenharmony_ci};
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciextern const struct linux_logo logo_linux_mono;
378c2ecf20Sopenharmony_ciextern const struct linux_logo logo_linux_vga16;
388c2ecf20Sopenharmony_ciextern const struct linux_logo logo_linux_clut224;
398c2ecf20Sopenharmony_ciextern const struct linux_logo logo_dec_clut224;
408c2ecf20Sopenharmony_ciextern const struct linux_logo logo_mac_clut224;
418c2ecf20Sopenharmony_ciextern const struct linux_logo logo_parisc_clut224;
428c2ecf20Sopenharmony_ciextern const struct linux_logo logo_sgi_clut224;
438c2ecf20Sopenharmony_ciextern const struct linux_logo logo_sun_clut224;
448c2ecf20Sopenharmony_ciextern const struct linux_logo logo_superh_mono;
458c2ecf20Sopenharmony_ciextern const struct linux_logo logo_superh_vga16;
468c2ecf20Sopenharmony_ciextern const struct linux_logo logo_superh_clut224;
478c2ecf20Sopenharmony_ciextern const struct linux_logo logo_spe_clut224;
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciextern const struct linux_logo *fb_find_logo(int depth);
508c2ecf20Sopenharmony_ci#ifdef CONFIG_FB_LOGO_EXTRA
518c2ecf20Sopenharmony_ciextern void fb_append_extra_logo(const struct linux_logo *logo,
528c2ecf20Sopenharmony_ci				 unsigned int n);
538c2ecf20Sopenharmony_ci#else
548c2ecf20Sopenharmony_cistatic inline void fb_append_extra_logo(const struct linux_logo *logo,
558c2ecf20Sopenharmony_ci					unsigned int n)
568c2ecf20Sopenharmony_ci{}
578c2ecf20Sopenharmony_ci#endif
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci#endif /* _LINUX_LINUX_LOGO_H */
60