Date: Fri, 6 May 2005 18:29:20 +0500 (SAMST) From: Vladimir Zarozhevsky <vladimir@voip.izhnet.ru> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/80694: [patch] atkbd looped on Acer TravelMate 2701LC Message-ID: <200505061329.j46DTKav087154@voip.izhnet.ru> Resent-Message-ID: <200505061330.j46DU3kX091549@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200505061329.j46DTKav087154>