Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP
id AA210 ; Fri, 29 Jan 93 14:00:41 EST
Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!sgiblab!swrinde!cs.utexas.edu!uunet!email!mbirgmei
From: mbirgmei@email.tuwien.ac.at (Martin BIRGMEIER)
Subject: Re: [386bsd] X broken with new patchkit ?
Message-ID: <1993Jan28.081304.27615@email.tuwien.ac.at>
Organization: Technical University of Vienna
References: <4374@wzv.win.tue.nl>
Date: Thu, 28 Jan 1993 08:13:04 GMT
Lines: 128
In article <4374@wzv.win.tue.nl> guido@gvr.win.tue.nl (Guido van Rooij) writes:
>I installed the new patchkit a few days ago. I also had keycap-0.1.1 (codrv)
>installed. This used to work fine, but now that I've installed the new
>patchkit, the keyboard isn't functioning quite well anymore when using X.
>Symptoms are that after pressing a key you have to wiat several seconds
>for the key to become visible on your xterm UNLESS you move your mouse..
>then the char immediately shows up. Anyone having the same behaviour?
>
>
>-Guido
Ok I had the same problems (plus a discussion with Nate Williams about it)
until I finally fixed it (at least it seems so :-)). Here is the patch:
------------------------------ cut here ------------------------------
*** /usr/src/sys.386bsd/i386/isa/co_kbd.c.CODRVP_ORIG Thu Nov 5 09:39:50 1992
--- /usr/src/sys.386bsd/i386/isa/co_kbd.c Wed Jan 27 09:37:59 1993
***************
*** 138,144 ****
initrb(&co_buf);
/* signal opening process only */
! consoftc.cs_selp = 0;
consoftc.cs_pgid = p->p_pid;
return 0;
--- 138,144 ----
initrb(&co_buf);
/* signal opening process only */
! consoftc.cs_selp = (pid_t) 0;
consoftc.cs_pgid = p->p_pid;
return 0;
***************
*** 156,162 ****
if (minor(dev)==0x80) return 0;
consoftc.cs_flags &= ~(CO_OPENRAW|CO_ASYNC);
! consoftc.cs_selp = 0;
consoftc.cs_pgid = 0;
/* do we need to restore console?
--- 156,162 ----
if (minor(dev)==0x80) return 0;
consoftc.cs_flags &= ~(CO_OPENRAW|CO_ASYNC);
! consoftc.cs_selp = (pid_t) 0;
consoftc.cs_pgid = 0;
/* do we need to restore console?
***************
*** 279,285 ****
return;
if (consoftc.cs_selp) {
selwakeup(consoftc.cs_selp,0);
! consoftc.cs_selp = 0;
}
if (consoftc.cs_flags & CO_ASYNC) {
if (consoftc.cs_pgid < 0)
--- 279,285 ----
return;
if (consoftc.cs_selp) {
selwakeup(consoftc.cs_selp,0);
! consoftc.cs_selp = (pid_t) 0;
}
if (consoftc.cs_flags & CO_ASYNC) {
if (consoftc.cs_pgid < 0)
***************
*** 306,312 ****
splx(s);
return 1;
}
! consoftc.cs_selp = p;
}
splx(s);
return 0;
--- 306,312 ----
splx(s);
return 1;
}
! consoftc.cs_selp = p->p_pid;
}
splx(s);
return 0;
***************
*** 1182,1188 ****
consoftc.cs_flags |= CO_OPENRAW;
ofl = 0;
}
! consoftc.cs_selp = 0;
break;
case KBDRESET8042:
doreset();
--- 1182,1188 ----
consoftc.cs_flags |= CO_OPENRAW;
ofl = 0;
}
! consoftc.cs_selp = (pid_t) 0;
break;
case KBDRESET8042:
doreset();
*** /usr/src/sys.386bsd/i386/isa/co_hdr.h.CODRVP_ORIG Wed Nov 4 04:15:59 1992
--- /usr/src/sys.386bsd/i386/isa/co_hdr.h Wed Jan 27 09:35:27 1993
***************
*** 122,128 ****
int cs_timo; /* timeouts since interrupt (unused) */
u_long cs_wedgecnt; /* times restarted (unused)*/
u_long cs_ovfl; /* buffer overflows */
! struct proc *cs_selp; /* Process waiting for select call */
int cs_pgid; /* Process group for ASYNC I/O */
/*XXX*/ struct tty *cs_constty; /* used to restore constty if */
/* anyone dares to steal CONSOLE during raw open */
--- 122,128 ----
int cs_timo; /* timeouts since interrupt (unused) */
u_long cs_wedgecnt; /* times restarted (unused)*/
u_long cs_ovfl; /* buffer overflows */
! pid_t cs_selp; /* Process waiting for select call */
int cs_pgid; /* Process group for ASYNC I/O */
/*XXX*/ struct tty *cs_constty; /* used to restore constty if */
/* anyone dares to steal CONSOLE during raw open */
------------------------------ cut here ------------------------------
Cheers,
Martin
Technical University of Vienna/Dept of Comm. Engr.