Subject: ADB keyboard not working in xmon

From: Olaf Hering <[email-masked]>
Date: Fri, 8 Sep 2006 23:27:09 +0200

What is the best way to let do_initcalls wait until the adb probing task
has finished when xmon is enabled and system console is not on serial?
The patch below leads to a dead keyboard without the delay,
or without adb_sync as cmdline option and CONFIG_XMON_DEFAULT=n.

Index: linux-2.6/init/main.c
===================================================================
--- linux-2.6.orig/init/main.c
+++ linux-2.6/init/main.c
@@ -662,6 +662,8 @@ static void __init do_basic_setup(void)
 #endif
 
        do_initcalls();
+//     msleep(10 * 1000);
+       asm(".long 0x0\n");
 }
 
 static void do_pre_smp_initcalls(void)
Index: linux-2.6/arch/powerpc/platforms/powermac/udbg_adb.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/powermac/udbg_adb.c
+++ linux-2.6/arch/powerpc/platforms/powermac/udbg_adb.c
@@ -216,5 +216,11 @@ int udbg_adb_init(int force_btext)
        if (input_type == input_adb_none)
                return -ENODEV;
 
+#ifdef CONFIG_XMON_DEFAULT
+       {
+               extern int __adb_probe_sync;
+               __adb_probe_sync = 1;
+       }
+#endif
        return 0;
 }