Linux Audio

Check our new training course

Loading...
v3.5.6
 
 1#ifndef __ASM_SH_BUGS_H
 2#define __ASM_SH_BUGS_H
 3
 4/*
 5 * This is included by init/main.c to check for architecture-dependent bugs.
 6 *
 7 * Needs:
 8 *	void check_bugs(void);
 9 */
10
11/*
12 * I don't know of any Super-H bugs yet.
13 */
14
15#include <asm/processor.h>
16
17extern void select_idle_routine(void);
18
19static void __init check_bugs(void)
20{
21	extern unsigned long loops_per_jiffy;
22	char *p = &init_utsname()->machine[2]; /* "sh" */
23
24	select_idle_routine();
25
26	current_cpu_data.loops_per_jiffy = loops_per_jiffy;
27
28	switch (current_cpu_data.family) {
29	case CPU_FAMILY_SH2:
30		*p++ = '2';
31		break;
32	case CPU_FAMILY_SH2A:
33		*p++ = '2';
34		*p++ = 'a';
35		break;
36	case CPU_FAMILY_SH3:
37		*p++ = '3';
38		break;
39	case CPU_FAMILY_SH4:
40		*p++ = '4';
41		break;
42	case CPU_FAMILY_SH4A:
43		*p++ = '4';
44		*p++ = 'a';
45		break;
46	case CPU_FAMILY_SH4AL_DSP:
47		*p++ = '4';
48		*p++ = 'a';
49		*p++ = 'l';
50		*p++ = '-';
51		*p++ = 'd';
52		*p++ = 's';
53		*p++ = 'p';
54		break;
55	case CPU_FAMILY_SH5:
56		*p++ = '6';
57		*p++ = '4';
58		break;
59	case CPU_FAMILY_UNKNOWN:
60		/*
61		 * Specifically use CPU_FAMILY_UNKNOWN rather than
62		 * default:, so we're able to have the compiler whine
63		 * about unhandled enumerations.
64		 */
65		break;
66	}
67
68	printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
69
70#ifndef __LITTLE_ENDIAN__
71	/* 'eb' means 'Endian Big' */
72	*p++ = 'e';
73	*p++ = 'b';
74#endif
75	*p = '\0';
76}
77#endif /* __ASM_SH_BUGS_H */
v5.9
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef __ASM_SH_BUGS_H
 3#define __ASM_SH_BUGS_H
 4
 5/*
 6 * This is included by init/main.c to check for architecture-dependent bugs.
 7 *
 8 * Needs:
 9 *	void check_bugs(void);
10 */
11
12/*
13 * I don't know of any Super-H bugs yet.
14 */
15
16#include <asm/processor.h>
17
18extern void select_idle_routine(void);
19
20static void __init check_bugs(void)
21{
22	extern unsigned long loops_per_jiffy;
23	char *p = &init_utsname()->machine[2]; /* "sh" */
24
25	select_idle_routine();
26
27	current_cpu_data.loops_per_jiffy = loops_per_jiffy;
28
29	switch (current_cpu_data.family) {
30	case CPU_FAMILY_SH2:
31		*p++ = '2';
32		break;
33	case CPU_FAMILY_SH2A:
34		*p++ = '2';
35		*p++ = 'a';
36		break;
37	case CPU_FAMILY_SH3:
38		*p++ = '3';
39		break;
40	case CPU_FAMILY_SH4:
41		*p++ = '4';
42		break;
43	case CPU_FAMILY_SH4A:
44		*p++ = '4';
45		*p++ = 'a';
46		break;
47	case CPU_FAMILY_SH4AL_DSP:
48		*p++ = '4';
49		*p++ = 'a';
50		*p++ = 'l';
51		*p++ = '-';
52		*p++ = 'd';
53		*p++ = 's';
54		*p++ = 'p';
 
 
 
 
55		break;
56	case CPU_FAMILY_UNKNOWN:
57		/*
58		 * Specifically use CPU_FAMILY_UNKNOWN rather than
59		 * default:, so we're able to have the compiler whine
60		 * about unhandled enumerations.
61		 */
62		break;
63	}
64
65	printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
66
67#ifndef __LITTLE_ENDIAN__
68	/* 'eb' means 'Endian Big' */
69	*p++ = 'e';
70	*p++ = 'b';
71#endif
72	*p = '\0';
73}
74#endif /* __ASM_SH_BUGS_H */