I found that "kbd_controller_present" macro was introduced in 2.4.20
pc_keyb.c. How about this patch? kbd-no.c is not needed anymore.
diff -ur linux-mips-cvs/arch/mips/kernel/setup.c
linux.new/arch/mips/kernel/setup.c
--- linux-mips-cvs/arch/mips/kernel/setup.c Fri Feb 14 09:41:21 2003
+++ linux.new/arch/mips/kernel/setup.c Mon Mar 10 12:04:34 2003
@@ -70,7 +70,6 @@
struct rtc_ops *rtc_ops;
#ifdef CONFIG_PC_KEYB
-extern struct kbd_ops no_kbd_ops;
struct kbd_ops *kbd_ops;
#endif
@@ -505,10 +504,6 @@
ide_ops = &no_ide_ops;
#endif
-#ifdef CONFIG_PC_KEYB
- kbd_ops = &no_kbd_ops;
-#endif
-
rtc_ops = &no_rtc_ops;
switch(mips_machgroup)
diff -ur linux-mips-cvs/arch/mips/lib/Makefile linux.new/arch/mips/lib/Makefile
--- linux-mips-cvs/arch/mips/lib/Makefile Fri Feb 14 09:41:21 2003
+++ linux.new/arch/mips/lib/Makefile Mon Mar 10 12:03:26 2003
@@ -19,6 +19,6 @@
obj-$(CONFIG_BLK_DEV_FD) += floppy-no.o floppy-std.o
obj-$(subst m,y,$(CONFIG_IDE)) += ide-std.o ide-no.o # needed for ide module
-obj-$(CONFIG_PC_KEYB) += kbd-std.o kbd-no.o
+obj-$(CONFIG_PC_KEYB) += kbd-std.o
include $(TOPDIR)/Rules.make
diff -ur linux-mips-cvs/include/asm-mips/keyboard.h
linux.new/include/asm-mips/keyboard.h
--- linux-mips-cvs/include/asm-mips/keyboard.h Fri Jan 4 07:54:52 2002
+++ linux.new/include/asm-mips/keyboard.h Mon Mar 10 12:03:44 2003
@@ -62,6 +62,7 @@
};
extern struct kbd_ops *kbd_ops;
+#define kbd_controller_present() (kbd_ops != 0)
/* Do the actual calls via kbd_ops vector */
#define kbd_request_region() kbd_ops->kbd_request_region()
---
There are another good side effects. With this patch, following error
messages (and some delay in boot sequence) go away.
> initialize_kbd: Keyboard failed self test
> keyboard: Timeout - AT keyboard not present?(ed)
> keyboard: Timeout - AT keyboard not present?(f4)
Currently these messages are displayed when CONFIG_PC_KEYB is enabled
and kbd_ops is no_kbd_ops.
---
Atsushi Nemoto
The old PGP key (ID B6D728B1) has been revoked. New key ID is 2874D52F.
|