From owner-freebsd-bugs@FreeBSD.ORG Fri May 6 13:30:03 2005 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8BEA016A4E4 for ; Fri, 6 May 2005 13:30:03 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3EF4E43D5A for ; Fri, 6 May 2005 13:30:03 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j46DU3Hv091550 for ; Fri, 6 May 2005 13:30:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j46DU3kX091549; Fri, 6 May 2005 13:30:03 GMT (envelope-from gnats) Resent-Date: Fri, 6 May 2005 13:30:03 GMT Resent-Message-Id: <200505061330.j46DU3kX091549@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Vladimir Zarozhevsky Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5393F16A4D3 for ; 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 ; 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 ; 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 To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: kern/80694: [patch] atkbd looped on Acer TravelMate 2701LC X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Vladimir Zarozhevsky List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2005 13:30:03 -0000 >Number: 80694 >Category: kern >Synopsis: [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: >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: >Unformatted: