Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jan 2000 18:31:56 +0900
From:      Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
To:        current@freebsd.org
Cc:        yokota@zodiac.mech.utsunomiya-u.ac.jp
Subject:   Keyboard problem (was: Re: Problems installing FreeBSD 4.0 20000125-CURRENT)
Message-ID:  <200001280931.SAA04893@zodiac.mech.utsunomiya-u.ac.jp>

next in thread | raw e-mail | index | archive | help
Ok, guys.

This is another patch for the atkbd driver.  I expect this one is
better than my previous one.  Remove the previous patch and try this
one instead.  Stress the keyboard (like hitting the Return key twice
when booting the system), and see if it works.

Thank you.

Kazu

>> I have on a number of occasions had my laptop boot with a
>> non-functional keyboard.  Sometimes the keyboard is just locked; other
>> times it generates garbage.  Never managed to isolate the
>> circumstances in which this happened (but it didn't happen with a
>> kernel from last September or there-abouts).  Haven't had it happen on
>> a desktop or server yet.
>
>I have seen this on numerious occasion, but have never tracked it down
>to any one specific thing.  All on desktop and servers, but thats
>only because we don't do laptops.
>
>I have not seen it in quite some time (about a month), so I am thinking
>it has probably been unknowingly fixed someplace.  I'll keep an eye
>out for it.
>
>-- 
>Rod Grimes - KD7CAX @ CN85sl - (RWG25)               rgrimes@gndrsh.dnsmgr.net

Index: atkbd.c
===================================================================
RCS file: /src/CVS/src/sys/dev/kbd/atkbd.c,v
retrieving revision 1.22
diff -u -r1.22 atkbd.c
--- atkbd.c	2000/01/20 13:32:53	1.22
+++ atkbd.c	2000/01/28 02:11:50
@@ -1084,8 +1097,11 @@
 		return ENXIO;
 	}
 
+	/* temporarily block data transmission from the keyboard */
+	write_controller_command(kbdc, KBDC_DISABLE_KBD_PORT);
+
 	/* flush any noise in the buffer */
-	empty_both_buffers(kbdc, 10);
+	empty_both_buffers(kbdc, 100);
 
 	/* save the current keyboard controller command byte */
 	m = kbdc_get_device_mask(kbdc) & ~KBD_KBD_CONTROL_BITS;
@@ -1133,8 +1148,11 @@
 		return EIO;
 	}
 
+	/* temporarily block data transmission from the keyboard */
+	write_controller_command(kbdc, KBDC_DISABLE_KBD_PORT);
+
 	/* save the current controller command byte */
 	empty_both_buffers(kbdc, 200);
 	c = get_controller_command_byte(kbdc);
 	if (c == -1) {
 		/* CONTROLLER ERROR */












To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001280931.SAA04893>