Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / arch / sh / include / asm / bugs.h
blob02a19a1c033ac71a9f2d4ad16faadf28f9f0bdc3
1 #ifndef __ASM_SH_BUGS_H
2 #define __ASM_SH_BUGS_H
4 /*
5 * This is included by init/main.c to check for architecture-dependent bugs.
7 * Needs:
8 * void check_bugs(void);
9 */
12 * I don't know of any Super-H bugs yet.
15 #include <asm/processor.h>
17 extern void select_idle_routine(void);
19 static void __init check_bugs(void)
21 extern unsigned long loops_per_jiffy;
22 char *p = &init_utsname()->machine[2]; /* "sh" */
24 select_idle_routine();
26 current_cpu_data.loops_per_jiffy = loops_per_jiffy;
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:
61 * Specifically use CPU_FAMILY_UNKNOWN rather than
62 * default:, so we're able to have the compiler whine
63 * about unhandled enumerations.
65 break;
68 printk("CPU: %s\n", get_cpu_subtype(&current_cpu_data));
70 #ifndef __LITTLE_ENDIAN__
71 /* 'eb' means 'Endian Big' */
72 *p++ = 'e';
73 *p++ = 'b';
74 #endif
75 *p = '\0';
77 #endif /* __ASM_SH_BUGS_H */