mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
Merged from sys/dev/sio/sio.c revisions 1.387 and 1.388.
This commit is contained in:
parent
484be8eac1
commit
947878824d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=112032
@ -184,6 +184,7 @@
|
|||||||
#define COM_DEBUGGER(flags) ((flags) & 0x80)
|
#define COM_DEBUGGER(flags) ((flags) & 0x80)
|
||||||
#define COM_LOSESOUTINTS(flags) ((flags) & 0x08)
|
#define COM_LOSESOUTINTS(flags) ((flags) & 0x08)
|
||||||
#define COM_NOFIFO(flags) ((flags) & 0x02)
|
#define COM_NOFIFO(flags) ((flags) & 0x02)
|
||||||
|
#define COM_PPSCTS(flags) ((flags) & 0x10000)
|
||||||
#define COM_ST16650A(flags) ((flags) & 0x20000)
|
#define COM_ST16650A(flags) ((flags) & 0x20000)
|
||||||
#define COM_C_NOPROBE (0x40000)
|
#define COM_C_NOPROBE (0x40000)
|
||||||
#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE)
|
#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE)
|
||||||
@ -341,6 +342,7 @@ struct com_s {
|
|||||||
struct timeval timestamp;
|
struct timeval timestamp;
|
||||||
struct timeval dcd_timestamp;
|
struct timeval dcd_timestamp;
|
||||||
struct pps_state pps;
|
struct pps_state pps;
|
||||||
|
int pps_bit;
|
||||||
|
|
||||||
u_long bytes_in; /* statistics */
|
u_long bytes_in; /* statistics */
|
||||||
u_long bytes_out;
|
u_long bytes_out;
|
||||||
@ -1800,6 +1802,11 @@ determined_type: ;
|
|||||||
com->devs[rid]->si_drv1 = com;
|
com->devs[rid]->si_drv1 = com;
|
||||||
com->flags = flags;
|
com->flags = flags;
|
||||||
com->pps.ppscap = PPS_CAPTUREASSERT | PPS_CAPTURECLEAR;
|
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);
|
pps_init(&com->pps);
|
||||||
|
|
||||||
rid = 0;
|
rid = 0;
|
||||||
@ -2601,9 +2608,11 @@ status_read:;
|
|||||||
#endif /* PC98 */
|
#endif /* PC98 */
|
||||||
if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {
|
if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {
|
||||||
modem_status = inb(com->modem_status_port);
|
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_capture(&com->pps);
|
||||||
pps_event(&com->pps, (modem_status & MSR_DCD) ?
|
pps_event(&com->pps,
|
||||||
|
(modem_status & com->pps_bit) ?
|
||||||
PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
|
PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -184,6 +184,7 @@
|
|||||||
#define COM_DEBUGGER(flags) ((flags) & 0x80)
|
#define COM_DEBUGGER(flags) ((flags) & 0x80)
|
||||||
#define COM_LOSESOUTINTS(flags) ((flags) & 0x08)
|
#define COM_LOSESOUTINTS(flags) ((flags) & 0x08)
|
||||||
#define COM_NOFIFO(flags) ((flags) & 0x02)
|
#define COM_NOFIFO(flags) ((flags) & 0x02)
|
||||||
|
#define COM_PPSCTS(flags) ((flags) & 0x10000)
|
||||||
#define COM_ST16650A(flags) ((flags) & 0x20000)
|
#define COM_ST16650A(flags) ((flags) & 0x20000)
|
||||||
#define COM_C_NOPROBE (0x40000)
|
#define COM_C_NOPROBE (0x40000)
|
||||||
#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE)
|
#define COM_NOPROBE(flags) ((flags) & COM_C_NOPROBE)
|
||||||
@ -341,6 +342,7 @@ struct com_s {
|
|||||||
struct timeval timestamp;
|
struct timeval timestamp;
|
||||||
struct timeval dcd_timestamp;
|
struct timeval dcd_timestamp;
|
||||||
struct pps_state pps;
|
struct pps_state pps;
|
||||||
|
int pps_bit;
|
||||||
|
|
||||||
u_long bytes_in; /* statistics */
|
u_long bytes_in; /* statistics */
|
||||||
u_long bytes_out;
|
u_long bytes_out;
|
||||||
@ -1800,6 +1802,11 @@ determined_type: ;
|
|||||||
com->devs[rid]->si_drv1 = com;
|
com->devs[rid]->si_drv1 = com;
|
||||||
com->flags = flags;
|
com->flags = flags;
|
||||||
com->pps.ppscap = PPS_CAPTUREASSERT | PPS_CAPTURECLEAR;
|
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);
|
pps_init(&com->pps);
|
||||||
|
|
||||||
rid = 0;
|
rid = 0;
|
||||||
@ -2601,9 +2608,11 @@ status_read:;
|
|||||||
#endif /* PC98 */
|
#endif /* PC98 */
|
||||||
if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {
|
if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) {
|
||||||
modem_status = inb(com->modem_status_port);
|
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_capture(&com->pps);
|
||||||
pps_event(&com->pps, (modem_status & MSR_DCD) ?
|
pps_event(&com->pps,
|
||||||
|
(modem_status & com->pps_bit) ?
|
||||||
PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
|
PPS_CAPTUREASSERT : PPS_CAPTURECLEAR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user