diff options
Diffstat (limited to 'comms/ltmdm/files/patch-aa')
-rw-r--r-- | comms/ltmdm/files/patch-aa | 121 |
1 files changed, 117 insertions, 4 deletions
diff --git a/comms/ltmdm/files/patch-aa b/comms/ltmdm/files/patch-aa index 73909e8e71e8..87cfc2901aab 100644 --- a/comms/ltmdm/files/patch-aa +++ b/comms/ltmdm/files/patch-aa @@ -1,6 +1,20 @@ ---- sys/dev/ltmdm/ltmdmsio.c-0.7 Sun Mar 10 23:16:17 2002 -+++ sys/dev/ltmdm/ltmdmsio.c Thu Apr 4 23:40:35 2002 -@@ -124,8 +124,10 @@ +--- sys/dev/ltmdm/ltmdmsio.c.orig Tue Mar 12 03:47:31 2002 ++++ sys/dev/ltmdm/ltmdmsio.c Sun Mar 2 23:49:45 2003 +@@ -69,9 +69,13 @@ + #include <machine/bus.h> + #include <sys/rman.h> + #if __FreeBSD_version >= 500000 ++#if __FreeBSD_version < 500034 /* < 20020426 */ + #include <sys/timetc.h> + #endif ++#endif ++#ifdef ENABLE_PPS + #include <sys/timepps.h> ++#endif + + #include <pci/pcireg.h> + #include <pci/pcivar.h> +@@ -124,9 +128,11 @@ #endif #if __FreeBSD_version >= 500023 /* >= 20010912 */ @@ -8,7 +22,106 @@ +#define proc thread /* XXX struct proc -> stuct thread */ +#if __FreeBSD_version < 500033 /* < 20020401 */ #define suser(p) suser_td(p) -+#endif #endif ++#endif + + + #define LOTS_OF_EVENTS 64 /* helps separate urgent events from input */ +@@ -256,7 +262,9 @@ + bool_t do_dcd_timestamp; + struct timeval timestamp; + struct timeval dcd_timestamp; ++#ifdef ENABLE_PPS + struct pps_state pps; ++#endif + + u_long bytes_in; /* statistics */ + u_long bytes_out; +@@ -361,7 +369,11 @@ + /* mmap */ nommap, + /* strategy */ nostrategy, + /* name */ driver_name, ++#ifdef MAJOR_AUTO ++ /* maj */ MAJOR_AUTO, ++#else + /* maj */ CDEV_MAJOR, ++#endif + /* dump */ nodump, + /* psize */ nopsize, + #if __FreeBSD_version < 430000 +@@ -1295,8 +1307,11 @@ + DPRINTF(1,(" x_chip_version = %d\n", x_chip_version)); + + com->flags = flags; ++ ++#ifdef ENABLE_PPS + com->pps.ppscap = PPS_CAPTUREASSERT | PPS_CAPTURECLEAR; + pps_init(&com->pps); ++#endif + + /* + * initialize the device registers as follows: +@@ -1685,7 +1700,9 @@ + s = splfunc(); + com->do_timestamp = FALSE; + com->do_dcd_timestamp = FALSE; ++#ifdef ENABLE_PPS + com->pps.ppsparam.mode = 0; ++#endif + write_vuart_port(UART_CFCR, com->cfcr_image &= ~CFCR_SBREAK); + { + write_vuart_port(UART_IER, 0); +@@ -1894,23 +1911,34 @@ + u_char recv_data; + u_char int_ctl; + u_char int_ctl_new; ++#ifdef ENABLE_PPS ++#if __FreeBSD_version < 500034 + struct timecounter *tc; + u_int count; ++#endif ++#endif + + int_ctl = read_vuart_port(UART_IER); + int_ctl_new = int_ctl; + while (!com->gone) { ++#ifdef ENABLE_PPS + if (com->pps.ppsparam.mode & PPS_CAPTUREBOTH) { + modem_status = read_vuart_port(UART_MSR); + if ((modem_status ^ com->last_modem_status) & MSR_DCD) { ++#if __FreeBSD_version < 500034 + tc = timecounter; + count = tc->tc_get_timecount(tc); + pps_event(&com->pps, tc, count, ++#else ++ pps_capture(&com->pps); ++ pps_event(&com->pps, ++#endif + (modem_status & MSR_DCD) ? + PPS_CAPTUREASSERT : PPS_CAPTURECLEAR); + } + } ++#endif + line_status = read_vuart_port(UART_LSR); + + /* input event? (check first to help avoid overruns) */ +@@ -2195,7 +2223,9 @@ + break; + default: + splx(s); ++#ifdef ENABLE_PPS + error = pps_ioctl(cmd, data, &com->pps); ++#endif + if (error == ENODEV) + error = ENOTTY; + return (error); +@@ -2796,7 +2826,7 @@ + #endif + DRIVER_MODULE(ltmdm, pci, ltmdm_pci_driver, ltmdm_devclass, ltmdm_event, 0); +-#if 0 ++#if 1 + #if __FreeBSD_version >= 500000 + DRIVER_MODULE(ltmdm, cardbus, ltmdm_pci_driver, ltmdm_devclass, ltmdm_event, 0); + #endif |