Fixed tslib driver to handle VT switches
This commit is contained in:
parent
a0876ade64
commit
a42e31b28c
|
@ -121,6 +121,29 @@ static char *TsNames[] = {
|
||||||
|
|
||||||
int TsInputType;
|
int TsInputType;
|
||||||
|
|
||||||
|
int
|
||||||
|
TslibEnable (int not_needed_fd, void *closure)
|
||||||
|
{
|
||||||
|
KdMouseInfo *mi = closure;
|
||||||
|
int fd = 0;
|
||||||
|
|
||||||
|
if(!(tsDev = ts_open(mi->name, 0))) {
|
||||||
|
fprintf(stderr, "%s() failed to open %s\n", __func__, mi->name );
|
||||||
|
return -1; /* XXX Not sure what to return here */
|
||||||
|
}
|
||||||
|
|
||||||
|
ts_config(tsDev);
|
||||||
|
fd=ts_fd(tsDev);
|
||||||
|
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TslibDisable (int fd, void *closure)
|
||||||
|
{
|
||||||
|
ts_close(tsDev);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
TslibInit (void)
|
TslibInit (void)
|
||||||
{
|
{
|
||||||
|
@ -131,7 +154,7 @@ TslibInit (void)
|
||||||
|
|
||||||
if (!TsInputType)
|
if (!TsInputType)
|
||||||
TsInputType = KdAllocInputType ();
|
TsInputType = KdAllocInputType ();
|
||||||
|
|
||||||
for (mi = kdMouseInfo; mi; mi = next)
|
for (mi = kdMouseInfo; mi; mi = next)
|
||||||
{
|
{
|
||||||
next = mi->next;
|
next = mi->next;
|
||||||
|
@ -151,14 +174,25 @@ TslibInit (void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if(!(tsDev = ts_open(mi->name,0)))
|
||||||
|
continue;
|
||||||
|
ts_config(tsDev);
|
||||||
|
fd=ts_fd(tsDev);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fd > 0 && tsDev != 0)
|
if (fd > 0 && tsDev != 0)
|
||||||
{
|
{
|
||||||
mi->driver = (void *) fd;
|
mi->driver = (void *) fd;
|
||||||
mi->inputType = TsInputType;
|
mi->inputType = TsInputType;
|
||||||
if (KdRegisterFd (TsInputType, fd, TsRead, (void *) mi))
|
if (KdRegisterFd (TsInputType, fd, TsRead, (void *) mi))
|
||||||
n++;
|
n++;
|
||||||
|
|
||||||
|
/* Set callbacks for vt switches etc */
|
||||||
|
KdRegisterFdEnableDisable (fd, TslibEnable, TslibDisable);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (fd > 0) close(fd);
|
if (fd > 0) close(fd);
|
||||||
|
|
Loading…
Reference in New Issue