1 #include <linux/string.h>
2 #include <linux/kernel.h>
3 #include <linux/errno.h>
4 #include <linux/bitops.h>
5 #include <linux/ptrace.h>
8 #include <linux/cuda.h>
9 #include <asm/machdep.h>
14 #include <asm/bootx.h>
15 #include <asm/errno.h>
17 #include <asm/processor.h>
18 #include <asm/delay.h>
19 #include <asm/btext.h>
29 static void (*udbg_adb_old_putc)(
char c);
30 static int (*udbg_adb_old_getc)(
void);
31 static int (*udbg_adb_old_getc_poll)(
void);
41 static inline void udbg_adb_poll(
void)
47 #ifdef CONFIG_ADB_CUDA
53 #ifdef CONFIG_BOOTX_TEXT
55 static int udbg_adb_use_btext;
56 static int xmon_adb_shiftstate;
58 static unsigned char xmon_keytab[128] =
62 "\t `\177\0\033\0\0\0\0\0\0\0\0\0\0"
63 "\0.\0*\0+\0\0\0\0\0/\r\0-\0"
64 "\0\0000123456789\0\0\0";
66 static unsigned char xmon_shift_keytab[128] =
70 "\t ~\177\0\033\0\0\0\0\0\0\0\0\0\0"
71 "\0.\0*\0+\0\0\0\0\0/\r\0-\0"
72 "\0\0000123456789\0\0\0";
74 static int udbg_adb_local_getc(
void)
92 if (udbg_adb_old_getc_poll)
93 k = udbg_adb_old_getc_poll();
102 if ((k & 0x7f) == 0x38 || (k & 0x7f) == 0x7b) {
103 xmon_adb_shiftstate = (k & 0x80) == 0;
108 k = (xmon_adb_shiftstate? xmon_shift_keytab: xmon_keytab)[k];
117 static int udbg_adb_getc(
void)
119 #ifdef CONFIG_BOOTX_TEXT
121 return udbg_adb_local_getc();
123 if (udbg_adb_old_getc)
124 return udbg_adb_old_getc();
133 static int udbg_adb_getc_poll(
void)
137 if (udbg_adb_old_getc_poll)
138 return udbg_adb_old_getc_poll();
142 static void udbg_adb_putc(
char c)
144 #ifdef CONFIG_BOOTX_TEXT
145 if (udbg_adb_use_btext)
148 if (udbg_adb_old_putc)
149 return udbg_adb_old_putc(c);
154 #ifdef CONFIG_BOOTX_TEXT
156 udbg_adb_use_btext = 1;
172 if (udbg_adb_old_putc == udbg_adb_putc)
173 udbg_adb_old_putc =
NULL;
174 #ifdef CONFIG_BOOTX_TEXT
176 udbg_adb_old_putc =
NULL;
184 #ifdef CONFIG_BOOTX_TEXT
187 udbg_adb_use_btext = 1;
196 int found = (parent &&
strcmp(parent->
type,
"adb") == 0);
205 #ifdef CONFIG_ADB_PMU
209 #ifdef CONFIG_ADB_CUDA