diff options
| author | Nicolas Souchu <nsouch@FreeBSD.org> | 1999-01-30 15:35:39 +0000 |
|---|---|---|
| committer | Nicolas Souchu <nsouch@FreeBSD.org> | 1999-01-30 15:35:39 +0000 |
| commit | 20240fa3ad284d37c77b569550834ff75be7e589 (patch) | |
| tree | 01a33e1f93b9df1298023453f674ba352a0e641a /sys/dev/ppbus | |
| parent | 88ec80ed82e4d7c1fee8a938b641bc4c1bd2a575 (diff) | |
Notes
Diffstat (limited to 'sys/dev/ppbus')
| -rw-r--r-- | sys/dev/ppbus/if_plip.c | 9 | ||||
| -rw-r--r-- | sys/dev/ppbus/immio.c | 24 | ||||
| -rw-r--r-- | sys/dev/ppbus/ppb_msq.h | 5 | ||||
| -rw-r--r-- | sys/dev/ppbus/ppbconf.h | 18 | ||||
| -rw-r--r-- | sys/dev/ppbus/ppi.c | 17 | ||||
| -rw-r--r-- | sys/dev/ppbus/ppi.h | 9 | ||||
| -rw-r--r-- | sys/dev/ppbus/pps.c | 8 | ||||
| -rw-r--r-- | sys/dev/ppbus/vpoio.c | 28 |
8 files changed, 72 insertions, 46 deletions
diff --git a/sys/dev/ppbus/if_plip.c b/sys/dev/ppbus/if_plip.c index d3b85a4b421a..886158cc844e 100644 --- a/sys/dev/ppbus/if_plip.c +++ b/sys/dev/ppbus/if_plip.c @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * From Id: lpt.c,v 1.55.2.1 1996/11/12 09:08:38 phk Exp - * $Id: if_plip.c,v 1.7 1999/01/09 18:10:37 nsouch Exp $ + * $Id: if_plip.c,v 1.8 1999/01/23 17:07:49 nsouch Exp $ */ /* @@ -131,11 +131,12 @@ #define LPIPTBLSIZE 256 /* Size of octet translation table */ -#ifndef PLIP_DEBUG -#define lprintf (void) -#else #define lprintf if (lptflag) printf + +#ifdef PLIP_DEBUG static int volatile lptflag = 1; +#else +static int volatile lptflag = 0; #endif struct lpt_softc { diff --git a/sys/dev/ppbus/immio.c b/sys/dev/ppbus/immio.c index 67054f79bea2..c02202924b02 100644 --- a/sys/dev/ppbus/immio.c +++ b/sys/dev/ppbus/immio.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: immio.c,v 1.4 1998/10/31 11:35:21 nsouch Exp $ + * $Id: immio.c,v 1.5 1999/01/10 12:04:54 nsouch Exp $ * */ @@ -72,8 +72,8 @@ struct ppb_microseq select_microseq[] = { \ /* first, check there is nothing holding onto the bus */ \ MS_SET(VP0_SELTMO), \ /* _loop: */ \ - MS_BRCLEAR(0x8, 3 /* _ready */), \ - MS_DBRA(-1 /* _loop */), \ + MS_BRCLEAR(0x8, 2 /* _ready */), \ + MS_DBRA(-2 /* _loop */), \ MS_RET(2), /* bus busy */ \ /* _ready: */ \ MS_CASS(0x4), \ @@ -84,8 +84,8 @@ struct ppb_microseq select_microseq[] = { \ /* now, wait until the drive is ready */ \ MS_SET(VP0_SELTMO), \ /* loop: */ \ - MS_BRSET(0x8, 4 /* ready */), \ - MS_DBRA(-1 /* loop */), \ + MS_BRSET(0x8, 3 /* ready */), \ + MS_DBRA(-2 /* loop */), \ /* error: */ \ MS_CASS(0xc), \ MS_RET(VP0_ESELECT_TIMEOUT), \ @@ -138,7 +138,7 @@ static struct ppb_microseq negociate_microseq[] = { \ MS_DELAY(100), \ MS_CASS(0x6), \ MS_DELAY(5), \ - MS_BRSET(0x20, 6 /* continue */), \ + MS_BRSET(0x20, 5 /* continue */), \ MS_DELAY(5), \ MS_CASS(0x7), \ MS_DELAY(5), \ @@ -217,7 +217,7 @@ static struct ppb_microseq nibble_inbyte_submicroseq[] = { /* do a C call to format the received nibbles */ MS_C_CALL(MS_UNKNOWN /* C hook */, MS_UNKNOWN /* param */), - MS_DBRA(-6 /* loop */), + MS_DBRA(-7 /* loop */), MS_RET(0) }; @@ -231,7 +231,7 @@ static struct ppb_microseq ps2_inbyte_submicroseq[] = { MS_CASS(PCD | 0x6), MS_RFETCH_P(1, MS_REG_DTR, MS_FETCH_ALL), MS_CASS(PCD | 0x5), - MS_DBRA(-3 /* loop */), + MS_DBRA(-4 /* loop */), MS_RET(0) }; @@ -245,10 +245,10 @@ static struct ppb_microseq spp_outbyte_submicroseq[] = { /* loop: */ MS_RASSERT_P(1, MS_REG_DTR), MS_CASS(0x5), - MS_DBRA(1), /* decrement counter */ + MS_DBRA(0), /* decrement counter */ MS_RASSERT_P(1, MS_REG_DTR), MS_CASS(0x0), - MS_DBRA(-5 /* loop */), + MS_DBRA(-6 /* loop */), /* return from the put call */ MS_CASS(0x4), @@ -258,14 +258,14 @@ static struct ppb_microseq spp_outbyte_submicroseq[] = { /* EPP 1.7 microsequences, ptr and len set at runtime */ static struct ppb_microseq epp17_outstr[] = { MS_CASS(0x4), - MS_RASSERT_P(MS_ACCUM, MS_REG_EPP), + MS_RASSERT_P(MS_ACCUM, MS_REG_EPP_D), MS_CASS(0xc), MS_RET(0), }; static struct ppb_microseq epp17_instr[] = { MS_CASS(PCD | 0x4), - MS_RFETCH_P(MS_ACCUM, MS_REG_EPP, MS_FETCH_ALL), + MS_RFETCH_P(MS_ACCUM, MS_REG_EPP_D, MS_FETCH_ALL), MS_CASS(PCD | 0xc), MS_RET(0), }; diff --git a/sys/dev/ppbus/ppb_msq.h b/sys/dev/ppbus/ppb_msq.h index 7de698bf37dc..ff43a3634bad 100644 --- a/sys/dev/ppbus/ppb_msq.h +++ b/sys/dev/ppbus/ppb_msq.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ppb_msq.h,v 1.3 1999/01/10 12:04:54 nsouch Exp $ + * $Id: ppb_msq.h,v 1.4 1999/01/27 21:49:53 dillon Exp $ * */ #ifndef __PPB_MSQ_H @@ -98,7 +98,8 @@ #define MS_REG_DTR 0x0 #define MS_REG_STR 0x1 #define MS_REG_CTR 0x2 -#define MS_REG_EPP 0x4 +#define MS_REG_EPP_A 0x3 +#define MS_REG_EPP_D 0x4 /* * Microsequence macro abstraction level diff --git a/sys/dev/ppbus/ppbconf.h b/sys/dev/ppbus/ppbconf.h index be0ff33f75e1..af08c5df72a4 100644 --- a/sys/dev/ppbus/ppbconf.h +++ b/sys/dev/ppbus/ppbconf.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ppbconf.h,v 1.11 1999/01/10 16:41:14 nsouch Exp $ + * $Id: ppbconf.h,v 1.12 1999/01/27 19:44:05 dillon Exp $ * */ #ifndef __PPBCONF_H @@ -204,14 +204,16 @@ struct ppb_adapter { u_char (*r_dtr)(int); u_char (*r_str)(int); u_char (*r_ctr)(int); - u_char (*r_epp)(int); + u_char (*r_epp_A)(int); + u_char (*r_epp_D)(int); u_char (*r_ecr)(int); u_char (*r_fifo)(int); void (*w_dtr)(int, char); void (*w_str)(int, char); void (*w_ctr)(int, char); - void (*w_epp)(int, char); + void (*w_epp_A)(int, char); + void (*w_epp_D)(int, char); void (*w_ecr)(int, char); void (*w_fifo)(int, char); }; @@ -315,6 +317,8 @@ extern int ppb_write(struct ppb_device *, char *, int, int); #define ppb_get_mode(dev) ((dev)->mode) +/* This set of function access only to the EPP _data_ registers + * in 8, 16 and 32 bit modes */ #define ppb_outsb_epp(dev,buf,cnt) \ (*(dev)->ppb->ppb_link->adapter->outsb_epp) \ ((dev)->ppb->ppb_link->adapter_unit, buf, cnt) @@ -334,13 +338,17 @@ extern int ppb_write(struct ppb_device *, char *, int, int); (*(dev)->ppb->ppb_link->adapter->insl_epp) \ ((dev)->ppb->ppb_link->adapter_unit, buf, cnt) -#define ppb_repp(dev) (*(dev)->ppb->ppb_link->adapter->r_epp) \ +#define ppb_repp_A(dev) (*(dev)->ppb->ppb_link->adapter->r_epp_A) \ + ((dev)->ppb->ppb_link->adapter_unit) +#define ppb_repp_D(dev) (*(dev)->ppb->ppb_link->adapter->r_epp_D) \ ((dev)->ppb->ppb_link->adapter_unit) #define ppb_recr(dev) (*(dev)->ppb->ppb_link->adapter->r_ecr) \ ((dev)->ppb->ppb_link->adapter_unit) #define ppb_rfifo(dev) (*(dev)->ppb->ppb_link->adapter->r_fifo) \ ((dev)->ppb->ppb_link->adapter_unit) -#define ppb_wepp(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_epp) \ +#define ppb_wepp_A(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_epp_A) \ + ((dev)->ppb->ppb_link->adapter_unit, byte) +#define ppb_wepp_D(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_epp_D) \ ((dev)->ppb->ppb_link->adapter_unit, byte) #define ppb_wecr(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_ecr) \ ((dev)->ppb->ppb_link->adapter_unit, byte) diff --git a/sys/dev/ppbus/ppi.c b/sys/dev/ppbus/ppi.c index 95d7644f7516..7b04ce4fd629 100644 --- a/sys/dev/ppbus/ppi.c +++ b/sys/dev/ppbus/ppi.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ppi.c,v 1.9 1999/01/10 12:04:55 nsouch Exp $ + * $Id: ppi.c,v 1.10 1999/01/27 21:49:53 dillon Exp $ * */ #include "ppi.h" @@ -487,8 +487,8 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) case PPIGCTRL: /* get control bits */ *val = ppb_rctr(&ppi->ppi_dev); break; - case PPIGEPP: /* get EPP bits */ - *val = ppb_repp(&ppi->ppi_dev); + case PPIGEPPD: /* get EPP data bits */ + *val = ppb_repp_D(&ppi->ppi_dev); break; case PPIGECR: /* get ECP bits */ *val = ppb_recr(&ppi->ppi_dev); @@ -506,8 +506,8 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) case PPISCTRL: /* set control bits */ ppb_wctr(&ppi->ppi_dev, *val); break; - case PPISEPP: /* set EPP bits */ - ppb_wepp(&ppi->ppi_dev, *val); + case PPISEPPD: /* set EPP data bits */ + ppb_wepp_D(&ppi->ppi_dev, *val); break; case PPISECR: /* set ECP bits */ ppb_wecr(&ppi->ppi_dev, *val); @@ -515,6 +515,13 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) case PPISFIFO: /* write FIFO */ ppb_wfifo(&ppi->ppi_dev, *val); break; + + case PPIGEPPA: /* get EPP address bits */ + *val = ppb_repp_A(&ppi->ppi_dev); + break; + case PPISEPPA: /* set EPP address bits */ + ppb_wepp_A(&ppi->ppi_dev, *val); + break; default: error = ENOTTY; break; diff --git a/sys/dev/ppbus/ppi.h b/sys/dev/ppbus/ppi.h index f20416ff72e7..243c87fa63c7 100644 --- a/sys/dev/ppbus/ppi.h +++ b/sys/dev/ppbus/ppi.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ppi.h,v 1.1 1997/08/14 13:57:43 msmith Exp $ + * $Id: ppi.h,v 1.2 1998/01/02 09:30:39 msmith Exp $ * */ #ifndef __PPI_H @@ -37,15 +37,18 @@ #define PPIGDATA _IOR('P', 10, u_int8_t) #define PPIGSTATUS _IOR('P', 11, u_int8_t) #define PPIGCTRL _IOR('P', 12, u_int8_t) -#define PPIGEPP _IOR('P', 13, u_int8_t) +#define PPIGEPPD _IOR('P', 13, u_int8_t) #define PPIGECR _IOR('P', 14, u_int8_t) #define PPIGFIFO _IOR('P', 15, u_int8_t) #define PPISDATA _IOW('P', 16, u_int8_t) #define PPISSTATUS _IOW('P', 17, u_int8_t) #define PPISCTRL _IOW('P', 18, u_int8_t) -#define PPISEPP _IOW('P', 19, u_int8_t) +#define PPISEPPD _IOW('P', 19, u_int8_t) #define PPISECR _IOW('P', 20, u_int8_t) #define PPISFIFO _IOW('P', 21, u_int8_t) +#define PPIGEPPA _IOR('P', 22, u_int8_t) +#define PPISEPPA _IOR('P', 23, u_int8_t) + #endif diff --git a/sys/dev/ppbus/pps.c b/sys/dev/ppbus/pps.c index 95b255cb1bb3..24be094eaf04 100644 --- a/sys/dev/ppbus/pps.c +++ b/sys/dev/ppbus/pps.c @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $Id: pps.c,v 1.11 1998/08/24 16:31:27 phk Exp $ + * $Id: pps.c,v 1.12 1998/12/07 21:58:16 archie Exp $ * * This driver implements a draft-mogul-pps-api-02.txt PPS source. * @@ -16,6 +16,7 @@ */ #include "opt_devfs.h" +#include "opt_ntp.h" #include <sys/param.h> #include <sys/kernel.h> @@ -133,6 +134,7 @@ ppsopen(dev_t dev, int flags, int fmt, struct proc *p) if (ppb_request_bus(&sc->pps_dev, PPB_WAIT|PPB_INTR)) return (EINTR); + ppb_wctr(&sc->pps_dev, 0); ppb_wctr(&sc->pps_dev, IRQENABLE); return(0); @@ -144,6 +146,10 @@ ppsclose(dev_t dev, int flags, int fmt, struct proc *p) struct pps_data *sc = softc[minor(dev)]; sc->ppsparam.mode = 0; + + ppb_wdtr(&sc->pps_dev, 0); + ppb_wctr(&sc->pps_dev, 0); + ppb_release_bus(&sc->pps_dev); return(0); } diff --git a/sys/dev/ppbus/vpoio.c b/sys/dev/ppbus/vpoio.c index 54791ee44dcc..17c25dd03469 100644 --- a/sys/dev/ppbus/vpoio.c +++ b/sys/dev/ppbus/vpoio.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: vpoio.c,v 1.4 1998/12/07 21:58:16 archie Exp $ + * $Id: vpoio.c,v 1.5 1999/01/10 12:04:55 nsouch Exp $ * */ @@ -186,7 +186,7 @@ static struct ppb_microseq nibble_inbyte_submicroseq[] = { /* do a C call to format the received nibbles */ MS_C_CALL(MS_UNKNOWN /* C hook */, MS_UNKNOWN /* param */), - MS_DBRA(-6 /* loop */), + MS_DBRA(-7 /* loop */), MS_CASS(H_AUTO | H_nSELIN | H_INIT | H_STROBE), MS_RET(0) @@ -202,7 +202,7 @@ static struct ppb_microseq ps2_inbyte_submicroseq[] = { MS_RFETCH_P(1, MS_REG_DTR, MS_FETCH_ALL), MS_CASS(PCD | H_nAUTO | H_SELIN | H_INIT | H_nSTROBE), MS_CASS(PCD | H_AUTO | H_SELIN | H_INIT | H_nSTROBE), - MS_DBRA(-3 /* loop */), + MS_DBRA(-4 /* loop */), MS_CASS(H_AUTO | H_nSELIN | H_INIT | H_STROBE), MS_RET(0) @@ -218,7 +218,7 @@ static struct ppb_microseq spp_outbyte_submicroseq[] = { MS_CASS(H_nAUTO | H_nSELIN | H_INIT | H_STROBE), MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE), MS_DELAY(VP0_PULSE), - MS_DBRA(-4 /* loop */), + MS_DBRA(-5 /* loop */), /* return from the put call */ MS_RET(0) @@ -229,9 +229,9 @@ static struct ppb_microseq epp17_outstr_body[] = { MS_CASS(H_AUTO | H_SELIN | H_INIT | H_STROBE), /* loop: */ - MS_RASSERT_P(1, MS_REG_EPP), - MS_BRSET(TIMEOUT, 4 /* error */), /* EPP timeout? */ - MS_DBRA(-2 /* loop */), + MS_RASSERT_P(1, MS_REG_EPP_D), + MS_BRSET(TIMEOUT, 3 /* error */), /* EPP timeout? */ + MS_DBRA(-3 /* loop */), MS_CASS(H_AUTO | H_nSELIN | H_INIT | H_STROBE), MS_RET(0), @@ -244,9 +244,9 @@ static struct ppb_microseq epp17_instr_body[] = { MS_CASS(PCD | H_AUTO | H_SELIN | H_INIT | H_STROBE), /* loop: */ - MS_RFETCH_P(1, MS_REG_EPP, MS_FETCH_ALL), - MS_BRSET(TIMEOUT, 4 /* error */), /* EPP timeout? */ - MS_DBRA(-2 /* loop */), + MS_RFETCH_P(1, MS_REG_EPP_D, MS_FETCH_ALL), + MS_BRSET(TIMEOUT, 3 /* error */), /* EPP timeout? */ + MS_DBRA(-3 /* loop */), MS_CASS(PCD | H_AUTO | H_nSELIN | H_INIT | H_STROBE), MS_RET(0), @@ -259,9 +259,9 @@ static struct ppb_microseq in_disk_mode[] = { MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE), MS_CASS(H_nAUTO | H_nSELIN | H_INIT | H_STROBE), - MS_BRCLEAR(H_FLT, 4 /* error */), + MS_BRCLEAR(H_FLT, 3 /* error */), MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE), - MS_BRSET(H_FLT, 2 /* error */), + MS_BRSET(H_FLT, 1 /* error */), MS_RET(1), /* error: */ @@ -510,8 +510,8 @@ vpoio_select(struct vpoio_data *vpo, int initiator, int target) /* now, wait until the drive is ready */ MS_SET(VP0_SELTMO), -/* loop: */ MS_BRSET(H_ACK, 3 /* ready */), - MS_DBRA(-1 /* loop */), +/* loop: */ MS_BRSET(H_ACK, 2 /* ready */), + MS_DBRA(-2 /* loop */), /* error: */ MS_RET(1), /* ready: */ MS_RET(0) }; |
