linux-mips-fnet
[Top] [All Lists]

Progress

To: linux-mips@fnet.fr
Subject: Progress
From: Warner Losh <imp@village.org>
Date: Fri, 10 May 1996 08:01:04 -0600
OK.  It isn't much, but I've managed to get up through .64 to book
correctly.  I have all the sources in CVS now and am bringing the
versions in one at a time.  .96 definitely doesn't get interrupts on
my machine, even with the extra patches I've not sent off to Ralf yet
that were in .62 to make the keyboard happy.

Warner

P.S.  Here ore those same patches.  Notice that I need to just enable
scan mode 2 and my keyboard is golden.  The entire reset sequence in
initialize_kbd() breaks my keyboard.  Also, this is relative to .65,
not .96 so you may have to apply it by hand.  I was torn between
checking for just the Deskstation and not doing the init there, or
doing the init for only the PICA and the Magnum.  The latter won out.


Index: drivers/char/keyboard.c
===================================================================
RCS file: /home/imp/Repository/linux/drivers/char/keyboard.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 keyboard.c
--- keyboard.c  1996/05/05 07:29:22     1.1.1.3
+++ keyboard.c  1996/05/10 04:44:31
@@ -1270,8 +1270,17 @@
                /*
                 * These two machines address their keyboard via the normal
                 * port address range.
+                *
+                * Also enable Scan Mode 2.
                 */
                request_region(0x60,16,"kbd");
+               kb_wait();
+               kbd_outb(0x60, 0x64); /* 60 == PS/2 MODE ??  */
+               kb_wait();
+               kbd_outb(0x41, 0x60); /* 4d:same as freebsd, 41:KCC+EKI */
+               kb_wait();
+               if (!send_data(0xf0) || !send_data(0x02))
+                       printk("Scanmode 2 change failed\n");
        }
        if (mips_machgroup == MACH_GROUP_JAZZ) {
                /*
@@ -1282,7 +1291,9 @@
        }
 #endif /* defined (__mips__) */
 #ifdef INIT_KBD
-       initialize_kbd();
+       if (mips_machtype == MACH_ACER_PICA_61 ||
+           mips_machtype == MACH_MIPS_MAGNUM_4000)
+               initialize_kbd();
 #endif
        mark_bh(KEYBOARD_BH);
        enable_bh(KEYBOARD_BH);

<Prev in Thread] Current Thread [Next in Thread>
  • Progress, Warner Losh <=