Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2)  * This file is subject to the terms and conditions of the GNU General Public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * License.  See the file "COPYING" in the main directory of this archive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * Copyright (c) 2014 Finn Thain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/console.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/init.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/string.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <asm/setup.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) extern void mvme16x_cons_write(struct console *co,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 			       const char *str, unsigned count);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) asmlinkage void __init debug_cons_nputs(const char *s, unsigned n);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) static void __ref debug_cons_write(struct console *c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 				   const char *s, unsigned n)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #if !(defined(CONFIG_SUN3) || defined(CONFIG_M68000) || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)       defined(CONFIG_COLDFIRE))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	if (MACH_IS_MVME16x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 		mvme16x_cons_write(c, s, n);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 		debug_cons_nputs(s, n);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) static struct console early_console_instance = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	.name  = "debug",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	.write = debug_cons_write,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	.flags = CON_PRINTBUFFER | CON_BOOT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	.index = -1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) static int __init setup_early_printk(char *buf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	if (early_console || buf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 		return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	early_console = &early_console_instance;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	register_console(early_console);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) early_param("earlyprintk", setup_early_printk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)  * debug_cons_nputs() defined in arch/m68k/kernel/head.S cannot be called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)  * after init sections are discarded (for platforms that use it).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #if !(defined(CONFIG_SUN3) || defined(CONFIG_M68000) || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)       defined(CONFIG_COLDFIRE))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) static int __init unregister_early_console(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 	if (!early_console || MACH_IS_MVME16x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 		return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 	return unregister_console(early_console);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) late_initcall(unregister_early_console);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #endif