1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00

Make flags bit 0x10000 mean that PPS timestamping should use the

CTS instead of the DCD pin.
This commit is contained in:
Poul-Henning Kamp 2003-02-27 12:27:09 +00:00
parent f449c0f11d
commit 6cec1852d4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=111613

View File

@ -113,6 +113,7 @@
#define COM_DEBUGGER(flags) ((flags) & 0x80)
#define COM_LOSESOUTINTS(flags) ((flags) & 0x08)
#define COM_NOFIFO(flags) ((flags) & 0x02)
#define COM_PPSCTS(flags) ((flags) & 0x10000)
#define COM_ST16650A(flags) ((flags) & 0x20000)
#define COM_C_NOPROBE (0x40000)
#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE)
@ -252,6 +253,7 @@ struct com_s {
struct timeval timestamp;
struct timeval dcd_timestamp;
struct pps_state pps;
int pps_bit;
u_long bytes_in; /* statistics */
u_long bytes_out;
@ -1106,6 +1108,11 @@ determined_type: ;
com->devs[rid]->si_drv1 = com;
com->flags = flags;
com->pps.ppscap = PPS_CAPTUREASSERT | PPS_CAPTURECLEAR;
if (COM_PPSCTS(flags))
com->pps_bit = MSR_CTS;
else
com->pps_bit = MSR_DCD;
pps_init(&com->pps);
rid = 0;
@ -1732,9 +1739,11 @@ siointr1(com)
while (!com->gone) {
if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {
modem_status = inb(com->modem_status_port);
if ((modem_status ^ com->last_modem_status) & MSR_DCD) {
if ((modem_status ^ com->last_modem_status) &
com->pps_bit) {
pps_capture(&com->pps);
pps_event(&com->pps, (modem_status & MSR_DCD) ?
pps_event(&com->pps,
(modem_status & com->ppsbit) ?
PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
}
}