From vladimir@voip.izhnet.ru  Fri May  6 13:29:26 2005
Return-Path: <vladimir@voip.izhnet.ru>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 5393F16A4D3
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  6 May 2005 13:29:26 +0000 (GMT)
Received: from voip.izhnet.ru (voip-e0.izhnet.ru [213.24.189.198])
	by mx1.FreeBSD.org (Postfix) with ESMTP id EEF6343D2D
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  6 May 2005 13:29:22 +0000 (GMT)
	(envelope-from vladimir@voip.izhnet.ru)
Received: from voip.izhnet.ru (localhost [127.0.0.1])
	by voip.izhnet.ru (8.13.1/8.13.1) with ESMTP id j46DTLW7087155
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 6 May 2005 18:29:21 +0500 (SAMST)
	(envelope-from vladimir@voip.izhnet.ru)
Received: (from vladimir@localhost)
	by voip.izhnet.ru (8.13.1/8.13.1/Submit) id j46DTKav087154;
	Fri, 6 May 2005 18:29:20 +0500 (SAMST)
	(envelope-from vladimir)
Message-Id: <200505061329.j46DTKav087154@voip.izhnet.ru>
Date: Fri, 6 May 2005 18:29:20 +0500 (SAMST)
From: Vladimir Zarozhevsky <vladimir@voip.izhnet.ru>
Reply-To: Vladimir Zarozhevsky <vladimir@voip.izhnet.ru>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [patch] atkbd looped on Acer TravelMate 2701LC
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         80694
>Category:       kern
>Synopsis:       [keyboard] [patch] atkbd looped on Acer TravelMate 2701LC
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri May 06 13:30:02 GMT 2005
>Closed-Date:    
>Last-Modified:  Thu May 01 06:03:55 UTC 2008
>Originator:     Vladimir Zarozhevsky
>Release:        FreeBSD 5.3-STABLE i386
>Organization:
INT Ltd.
>Environment:
Laptop Acer TraverlMate 2701LC
System: FreeBSD voip.izhnet.ru 5.3-STABLE FreeBSD 5.3-STABLE #4: Sat Nov 13 12:04:35 SAMT 2004 vladimir@voip.izhnet.ru:/var/spool/obj/usr/src/sys/voip i386


	
>Description:
	For running FreeBSD kernel need disable atkbd keyboard
	and use USB keyboard. After install FreeBSD for use internal
	keyboard need patch sys/dev/kdb/atkbdc.c file and recompile
	kernel, install kernel and reboot our Laptop.
>How-To-Repeat:
	
>Fix:
	Patch included.

	

--- atkbdc.c.patch begins here ---
*** atkbdc.c.orig	Wed May  4 15:02:31 2005
--- atkbdc.c	Fri May  6 13:12:00 2005
*************** empty_aux_buffer(KBDC p, int wait)
*** 758,765 ****
      int c2 = 0;
  #endif
      int delta = 2;
  
!     for (t = wait; t > 0; ) { 
          if ((f = read_status(kbdcp(p))) & KBDS_ANY_BUFFER_FULL) {
  	    DELAY(KBDD_DELAYTIME);
              b = read_data(kbdcp(p));
--- 758,766 ----
      int c2 = 0;
  #endif
      int delta = 2;
+     int twait = wait;
  
!     for (t = twait; t > 0; ) { 
          if ((f = read_status(kbdcp(p))) & KBDS_ANY_BUFFER_FULL) {
  	    DELAY(KBDD_DELAYTIME);
              b = read_data(kbdcp(p));
*************** empty_aux_buffer(KBDC p, int wait)
*** 771,777 ****
  		++c2;
  #endif
  	    }
! 	    t = wait;
  	} else {
  	    t -= delta;
  	}
--- 772,778 ----
  		++c2;
  #endif
  	    }
! 	    t = twait--;
  	} else {
  	    t -= delta;
  	}
*************** empty_both_buffers(KBDC p, int wait)
*** 796,804 ****
      int c2 = 0;
  #endif
      int delta = 2;
  
!     for (t = wait; t > 0; ) { 
!         if ((f = read_status(kbdcp(p))) & KBDS_ANY_BUFFER_FULL) {
  	    DELAY(KBDD_DELAYTIME);
              (void)read_data(kbdcp(p));
  #if KBDIO_DEBUG >= 2
--- 797,807 ----
      int c2 = 0;
  #endif
      int delta = 2;
+     int twait = wait;
  
!     for (t = twait; t > 0; ) { 
! 	f = read_status(kbdcp(p));
!         if (f & KBDS_ANY_BUFFER_FULL) {
  	    DELAY(KBDD_DELAYTIME);
              (void)read_data(kbdcp(p));
  #if KBDIO_DEBUG >= 2
*************** empty_both_buffers(KBDC p, int wait)
*** 807,813 ****
              else
  		++c2;
  #endif
! 	    t = wait;
  	} else {
  	    t -= delta;
  	}
--- 810,816 ----
              else
  		++c2;
  #endif
! 	    t = twait--;
  	} else {
  	    t -= delta;
  	}
--- atkbdc.c.patch ends here ---


>Release-Note:
>Audit-Trail:

From: "Vladimir Zarozhevskij" <vladimir@izhnet.ru>
To: <bug-followup@FreeBSD.org>
Cc:  
Subject: Re: kern/80694: [patch] atkbd looped on Acer TravelMate 2701LC
Date: Thu, 2 Jun 2005 12:34:49 +0500

     This patch for sys/dev/kbd/atkbdc.c
 
 ---
 INT Ltd.
 Vladimir Zarozhevskij
 The service of technical support
 Phone: +7-3412-912000, 912291, 511173
 Web: http://www.izhnet.ru
 
 
>Unformatted:
