File tree Expand file tree Collapse file tree 3 files changed +40
-1
lines changed Expand file tree Collapse file tree 3 files changed +40
-1
lines changed Original file line number Diff line number Diff line change 13
13
#include <asm/setup.h>
14
14
15
15
16
+ #include "../mvme147/mvme147.h"
16
17
#include "../mvme16x/mvme16x.h"
17
18
18
19
asmlinkage void __init debug_cons_nputs (const char * s , unsigned n );
@@ -22,7 +23,9 @@ static void __ref debug_cons_write(struct console *c,
22
23
{
23
24
#if !(defined(CONFIG_SUN3 ) || defined(CONFIG_M68000 ) || \
24
25
defined(CONFIG_COLDFIRE ))
25
- if (MACH_IS_MVME16x )
26
+ if (MACH_IS_MVME147 )
27
+ mvme147_scc_write (c , s , n );
28
+ else if (MACH_IS_MVME16x )
26
29
mvme16x_cons_write (c , s , n );
27
30
else
28
31
debug_cons_nputs (s , n );
Original file line number Diff line number Diff line change 32
32
#include <asm/mvme147hw.h>
33
33
#include <asm/config.h>
34
34
35
+ #include "mvme147.h"
35
36
36
37
static void mvme147_get_model (char * model );
37
38
static void __init mvme147_sched_init (void );
@@ -185,3 +186,32 @@ int mvme147_hwclk(int op, struct rtc_time *t)
185
186
}
186
187
return 0 ;
187
188
}
189
+
190
+ static void scc_delay (void )
191
+ {
192
+ __asm__ __volatile__ ("nop; nop;" );
193
+ }
194
+
195
+ static void scc_write (char ch )
196
+ {
197
+ do {
198
+ scc_delay ();
199
+ } while (!(in_8 (M147_SCC_A_ADDR ) & BIT (2 )));
200
+ scc_delay ();
201
+ out_8 (M147_SCC_A_ADDR , 8 );
202
+ scc_delay ();
203
+ out_8 (M147_SCC_A_ADDR , ch );
204
+ }
205
+
206
+ void mvme147_scc_write (struct console * co , const char * str , unsigned int count )
207
+ {
208
+ unsigned long flags ;
209
+
210
+ local_irq_save (flags );
211
+ while (count -- ) {
212
+ if (* str == '\n' )
213
+ scc_write ('\r' );
214
+ scc_write (* str ++ );
215
+ }
216
+ local_irq_restore (flags );
217
+ }
Original file line number Diff line number Diff line change
1
+ /* SPDX-License-Identifier: GPL-2.0-only */
2
+
3
+ struct console ;
4
+
5
+ /* config.c */
6
+ void mvme147_scc_write (struct console * co , const char * str , unsigned int count );
You can’t perform that action at this time.
0 commit comments