Module Name: src Committed By: tsutsui Date: Sun Jun 12 05:06:23 UTC 2011
Modified Files: src/sys/arch/emips/ebus: dz_ebus.c Log Message: Misc KNF. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/emips/ebus/dz_ebus.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/emips/ebus/dz_ebus.c diff -u src/sys/arch/emips/ebus/dz_ebus.c:1.2 src/sys/arch/emips/ebus/dz_ebus.c:1.3 --- src/sys/arch/emips/ebus/dz_ebus.c:1.2 Sun Apr 24 16:26:55 2011 +++ src/sys/arch/emips/ebus/dz_ebus.c Sun Jun 12 05:06:23 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: dz_ebus.c,v 1.2 2011/04/24 16:26:55 rmind Exp $ */ +/* $NetBSD: dz_ebus.c,v 1.3 2011/06/12 05:06:23 tsutsui Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dz_ebus.c,v 1.2 2011/04/24 16:26:55 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dz_ebus.c,v 1.3 2011/06/12 05:06:23 tsutsui Exp $"); #include "opt_ddb.h" @@ -58,13 +58,15 @@ #include <emips/ebus/ebusvar.h> #include <emips/emips/cons.h> -//#include <emips/emips/machdep.h> +#if 0 +#include <emips/emips/machdep.h> +#endif #include "ioconf.h" /* for dz_cd */ -#define DZ_C2I(c) ((c)<<3) /* convert controller # to index */ -#define DZ_I2C(c) ((c)>>3) /* convert minor to controller # */ -#define DZ_PORT(u) ((u)&07) /* extract the port # */ +#define DZ_C2I(c) ((c) << 3) /* convert controller # to index */ +#define DZ_I2C(c) ((c) >> 3) /* convert minor to controller # */ +#define DZ_PORT(u) ((u) & 07) /* extract the port # */ struct dz_softc { struct device sc_dev; /* Autoconf blaha */ @@ -80,7 +82,7 @@ struct dz_linestate { struct dz_softc *dz_sc; /* backpointer to softc */ int dz_line; /* channel number */ - struct tty * dz_tty; /* what we work on */ + struct tty *dz_tty; /* what we work on */ } sc_dz; }; @@ -118,7 +120,7 @@ { struct tty *tp; int unit, line; - struct dz_softc *sc; + struct dz_softc *sc; int s, error = 0; unit = DZ_I2C(minor(dev)); @@ -133,10 +135,10 @@ tp = sc->sc_dz.dz_tty; if (tp == NULL) - return (ENODEV); - tp->t_oproc = dzstart; - tp->t_param = dzparam; - tp->t_dev = dev; + return ENODEV; + tp->t_oproc = dzstart; + tp->t_param = dzparam; + tp->t_dev = dev; if (kauth_authorize_device_tty(l->l_cred, KAUTH_DEVICE_TTY_OPEN, tp)) return (EBUSY); @@ -150,34 +152,34 @@ tp->t_lflag = TTYDEF_LFLAG; tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED; } - (void) dzparam(tp, &tp->t_termios); + (void)dzparam(tp, &tp->t_termios); ttsetwater(tp); } - /* we have no modem control but..*/ + /* we have no modem control but..*/ if (dzmctl(sc, line, TIOCM_DTR, DMBIS) & TIOCM_CD) - tp->t_state |= TS_CARR_ON; - s = spltty(); - while (!(flag & O_NONBLOCK) && !(tp->t_cflag & CLOCAL) && - !(tp->t_state & TS_CARR_ON)) { - tp->t_wopen++; - error = ttysleep(tp, &tp->t_rawcv, true, 0); - tp->t_wopen--; - if (error) - break; - } - (void) splx(s); + tp->t_state |= TS_CARR_ON; + s = spltty(); + while (!(flag & O_NONBLOCK) && !(tp->t_cflag & CLOCAL) && + !(tp->t_state & TS_CARR_ON)) { + tp->t_wopen++; + error = ttysleep(tp, &tp->t_rawcv, true, 0); + tp->t_wopen--; + if (error) + break; + } + (void)splx(s); if (error) - return (error); - return ((*tp->t_linesw->l_open)(dev, tp)); + return error; + return (*tp->t_linesw->l_open)(dev, tp); } + int dzclose(dev_t dev, int flag, int mode, struct lwp *l) { - struct dz_softc *sc; + struct dz_softc *sc; struct tty *tp; int unit, line; - unit = DZ_I2C(minor(dev)); line = DZ_PORT(minor(dev)); sc = (void *)dz_cd.cd_devs[unit]; @@ -187,36 +189,37 @@ (*tp->t_linesw->l_close)(tp, flag); /* Make sure a BREAK state is not left enabled. */ - (void) dzmctl(sc, line, TIOCM_BRK, DMBIC); + (void)dzmctl(sc, line, TIOCM_BRK, DMBIC); /* Do a hangup if so required. */ if ((tp->t_cflag & HUPCL) || tp->t_wopen || !(tp->t_state & TS_ISOPEN)) (void) dzmctl(sc, line, 0, DMSET); - return (ttyclose(tp)); + return ttyclose(tp); } + int dzread(dev_t dev, struct uio *uio, int flag) { struct tty *tp; - struct dz_softc *sc; + struct dz_softc *sc; sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))]; tp = sc->sc_dz.dz_tty; - return ((*tp->t_linesw->l_read)(tp, uio, flag)); + return (*tp->t_linesw->l_read)(tp, uio, flag); } int dzwrite(dev_t dev, struct uio *uio, int flag) { struct tty *tp; - struct dz_softc *sc; + struct dz_softc *sc; sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))]; tp = sc->sc_dz.dz_tty; - return ((*tp->t_linesw->l_write)(tp, uio, flag)); + return (*tp->t_linesw->l_write)(tp, uio, flag); } /*ARGSUSED*/ @@ -235,56 +238,57 @@ error = (*tp->t_linesw->l_ioctl)(tp, cmd, data, flag, l); if (error >= 0) - return (error); + return error; error = ttioctl(tp, cmd, data, flag, l); if (error >= 0) - return (error); + return error; switch (cmd) { case TIOCSBRK: - (void) dzmctl(sc, line, TIOCM_BRK, DMBIS); + (void)dzmctl(sc, line, TIOCM_BRK, DMBIS); break; case TIOCCBRK: - (void) dzmctl(sc, line, TIOCM_BRK, DMBIC); + (void)dzmctl(sc, line, TIOCM_BRK, DMBIC); break; case TIOCSDTR: - (void) dzmctl(sc, line, TIOCM_DTR, DMBIS); + (void)dzmctl(sc, line, TIOCM_DTR, DMBIS); break; case TIOCCDTR: - (void) dzmctl(sc, line, TIOCM_DTR, DMBIC); + (void)dzmctl(sc, line, TIOCM_DTR, DMBIC); break; case TIOCMSET: - (void) dzmctl(sc, line, *(int *)data, DMSET); + (void)dzmctl(sc, line, *(int *)data, DMSET); break; case TIOCMBIS: - (void) dzmctl(sc, line, *(int *)data, DMBIS); + (void)dzmctl(sc, line, *(int *)data, DMBIS); break; case TIOCMBIC: - (void) dzmctl(sc, line, *(int *)data, DMBIC); + (void)dzmctl(sc, line, *(int *)data, DMBIC); break; case TIOCMGET: - *(int *)data = (dzmctl(sc, line, 0, DMGET) & ~TIOCM_BRK); + *(int *)data = dzmctl(sc, line, 0, DMGET) & ~TIOCM_BRK; break; default: - return (EPASSTHROUGH); + return EPASSTHROUGH; } - return (0); + return 0; } /*ARGSUSED*/ void dzstop(struct tty *tp, int flag) { + if (tp->t_state & TS_BUSY) if (!(tp->t_state & TS_TTSTOP)) tp->t_state |= TS_FLUSH; @@ -293,22 +297,22 @@ struct tty * dztty(dev_t dev) { - struct dz_softc *sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))]; - struct tty *tp = sc->sc_dz.dz_tty; + struct dz_softc *sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))]; + struct tty *tp = sc->sc_dz.dz_tty; - return (tp); + return tp; } int -dzpoll( dev_t dev, int events, struct lwp *l) +dzpoll(dev_t dev, int events, struct lwp *l) { + struct dz_softc *sc; struct tty *tp; - struct dz_softc *sc; sc = (void *)dz_cd.cd_devs[DZ_I2C(minor(dev))]; tp = sc->sc_dz.dz_tty; - return ((*tp->t_linesw->l_poll)(tp, events, l)); + return (*tp->t_linesw->l_poll)(tp, events, l); } void @@ -335,7 +339,7 @@ tp->t_state |= TS_BUSY; - /* was idle, get it started */ + /* was idle, get it started */ dzxint(sc,USI_TXRDY); splx(s); } @@ -348,13 +352,13 @@ int act_baud, divisor, error; if (baudrate <= 0) - return (0); + return 0; - divisor = (rclk/8)/(baudrate); - divisor = (divisor/2) + (divisor&1); + divisor = (rclk / 8) / (baudrate); + divisor = (divisor / 2) + (divisor & 1); if (divisor <= 0) - return (-1); + return -1; act_baud = rclk / (divisor * 16); /* 10 times error in percent: */ @@ -362,9 +366,9 @@ /* 3.0% maximum error tolerance: */ if (error < -30 || error > 30) - return (-1); + return -1; - return (divisor); + return divisor; } static int @@ -383,40 +387,42 @@ sc = (void *)dz_cd.cd_devs[unit]; /* check requested parameters */ - if (t->c_ispeed != t->c_ospeed) - return (EINVAL); - speed = dzdivisor(t->c_ispeed); - if (speed < 0) - return (EINVAL); - - tp->t_ispeed = t->c_ispeed; - tp->t_ospeed = t->c_ospeed; - tp->t_cflag = cflag; - -{ static int didit=0; - if (!didit && t->c_ispeed != 38400) - printf("dzparam: c_ispeed %d ignored, keeping 38400\n",t->c_ispeed); - didit = 1; -} - speed = dzdivisor(38400); + if (t->c_ispeed != t->c_ospeed) + return EINVAL; + speed = dzdivisor(t->c_ispeed); + if (speed < 0) + return EINVAL; + + tp->t_ispeed = t->c_ispeed; + tp->t_ospeed = t->c_ospeed; + tp->t_cflag = cflag; + + { + /* XXX */ + static int didit = 0; + if (!didit && t->c_ispeed != 38400) + printf("dzparam: c_ispeed %d ignored, keeping 38400\n", + t->c_ispeed); + didit = 1; + } + speed = dzdivisor(38400); if (speed == 0) { - (void) dzmctl(sc, line, 0, DMSET); /* hang up line */ - return (0); + (void)dzmctl(sc, line, 0, DMSET); /* hang up line */ + return 0; } - switch (cflag & CSIZE) - { - case CS5: + switch (cflag & CSIZE) { + case CS5: lpr = USC_BPC_5; break; - case CS6: + case CS6: lpr = USC_BPC_6; break; - case CS7: + case CS7: lpr = USC_BPC_7; break; - default: + default: lpr = USC_BPC_8; break; } @@ -424,30 +430,30 @@ lpr |= USC_2STOP; if (cflag & PARENB) { - if (cflag & PARODD) - lpr |= USC_ODD; - else - lpr |= USC_EVEN; - } else - lpr |= USC_NONE; + if (cflag & PARODD) + lpr |= USC_ODD; + else + lpr |= USC_EVEN; + } else + lpr |= USC_NONE; s = spltty(); dzr = sc->sc_dr; - dzr->Baud = speed; - dzr->Control = USC_CLKDIV_4 | USC_TXEN | USC_RXEN | lpr; + dzr->Baud = speed; + dzr->Control = USC_CLKDIV_4 | USC_TXEN | USC_RXEN | lpr; #define USI_INTRS (USI_RXRDY|USI_RXBRK|USI_OVRE|USI_FRAME|USI_PARE) - dzr->IntrEnable = USI_INTRS; + dzr->IntrEnable = USI_INTRS; - (void) splx(s); - return (0); + (void)splx(s); + return 0; } static unsigned dzmctl(struct dz_softc *sc, int line, int bits, int how) { - unsigned mbits; + unsigned int mbits; int s; struct _Usart *dzr; @@ -457,43 +463,42 @@ dzr = sc->sc_dr; - /* we have no modem control bits (CD,RI,DTR,DSR,..) */ - mbits |= TIOCM_CD; - mbits |= TIOCM_DTR; + /* we have no modem control bits (CD,RI,DTR,DSR,..) */ + mbits |= TIOCM_CD; + mbits |= TIOCM_DTR; if (dzr->ChannelStatus & USI_RXBRK) mbits |= TIOCM_BRK; - switch (how) - { - case DMSET: + switch (how) { + case DMSET: mbits = bits; break; - case DMBIS: + case DMBIS: mbits |= bits; break; - case DMBIC: + case DMBIC: mbits &= ~bits; break; - case DMGET: - (void) splx(s); - return (mbits); + case DMGET: + (void)splx(s); + return mbits; } - /* BUGBUG work in progress */ + /* BUGBUG work in progress */ if (mbits & TIOCM_BRK) { sc->sc_brk |= (1 << line); - dzr->Control |= USC_STTBRK; + dzr->Control |= USC_STTBRK; } else { sc->sc_brk &= ~(1 << line); - dzr->Control |= USC_STPBRK; + dzr->Control |= USC_STPBRK; } - (void) splx(s); - return (mbits); + (void)splx(s); + return mbits; } @@ -513,40 +518,39 @@ sc->sc_rxint++; dzr = sc->sc_dr; - cc = dzr->RxData; - tp = sc->sc_dz.dz_tty; + cc = dzr->RxData; + tp = sc->sc_dz.dz_tty; + + if (csr & USI_RXBRK) + mcc = CNC_BREAK; + else + mcc = cc; + + /* clear errors before we print or bail out */ + if (csr & (USI_OVRE|USI_FRAME|USI_PARE)) + dzr->Control = USC_RSTSTA; + + if (!(tp->t_state & TS_ISOPEN)) { + wakeup(&tp->t_rawq); + return; + } + + if (csr & USI_OVRE) { + log(LOG_WARNING, "%s: silo overflow, line %d\n", + sc->sc_dev.dv_xname, 0); + } - if (csr & USI_RXBRK) - mcc = CNC_BREAK; - else - mcc = cc; - - /* clear errors before we print or bail out */ - if (csr & (USI_OVRE|USI_FRAME|USI_PARE)) - dzr->Control = USC_RSTSTA; - - if (!(tp->t_state & TS_ISOPEN)) { - wakeup(&tp->t_rawq); - return; - } - - if (csr & USI_OVRE) { - log(LOG_WARNING, "%s: silo overflow, line %d\n", - sc->sc_dev.dv_xname, 0); - } - - if (csr & USI_FRAME) - cc |= TTY_FE; - if (csr & USI_PARE) - cc |= TTY_PE; + if (csr & USI_FRAME) + cc |= TTY_FE; + if (csr & USI_PARE) + cc |= TTY_PE; #if defined(DDB) - /* ^P drops into DDB */ - if (dz_ddb && (cc == 0x10)) - Debugger(); + /* ^P drops into DDB */ + if (dz_ddb && (cc == 0x10)) + Debugger(); #endif - (*tp->t_linesw->l_rint)(cc, tp); - + (*tp->t_linesw->l_rint)(cc, tp); } /* Transmitter Interrupt */ @@ -561,38 +565,39 @@ dzr = sc->sc_dr; - tp = sc->sc_dz.dz_tty; - cl = &tp->t_outq; - tp->t_state &= ~TS_BUSY; - - /* Just send out a char if we have one */ - if (cl->c_cc) { - tp->t_state |= TS_BUSY; - ch = getc(cl); - dzr->TxData = ch; - dzr->IntrEnable = USI_TXRDY; - return; - } - - /* Nothing to send; turn off intr */ - dzr->IntrDisable = USI_TXRDY; - - if (tp->t_state & TS_FLUSH) - tp->t_state &= ~TS_FLUSH; - else - ndflush (&tp->t_outq, cl->c_cc); - - (*tp->t_linesw->l_start)(tp); -} - -/* Machdep part of the driver -*/ -int dz_ebus_match(struct device *, struct cfdata *, void *); -void dz_ebus_attach(struct device *, struct device *, void *); + tp = sc->sc_dz.dz_tty; + cl = &tp->t_outq; + tp->t_state &= ~TS_BUSY; + + /* Just send out a char if we have one */ + if (cl->c_cc) { + tp->t_state |= TS_BUSY; + ch = getc(cl); + dzr->TxData = ch; + dzr->IntrEnable = USI_TXRDY; + return; + } + + /* Nothing to send; turn off intr */ + dzr->IntrDisable = USI_TXRDY; + + if (tp->t_state & TS_FLUSH) + tp->t_state &= ~TS_FLUSH; + else + ndflush(&tp->t_outq, cl->c_cc); + + (*tp->t_linesw->l_start)(tp); +} + +/* + * Machdep part of the driver + */ +int dz_ebus_match(device_t, cfdata_t, void *); +void dz_ebus_attach(device_t, device_t, void *); int dz_ebus_intr(void *, void *); void dz_ebus_cnsetup(paddr_t); -void dz_ebus_cninit(struct consdev*); +void dz_ebus_cninit(struct consdev *); int dz_ebus_cngetc(dev_t); void dz_ebus_cnputc(dev_t, int); void dz_ebus_cnpollc(dev_t, int); @@ -607,31 +612,32 @@ dz_ebus_cnpollc, NULL, NULL, NULL, NODEV, CN_NORMAL, }; -/* Points to the console regs. Special mapping until VM is turned on. +/* + * Points to the console regs. Special mapping until VM is turned on. */ struct _Usart *dzcn; int -dz_ebus_match(struct device *parent, struct cfdata *cf, void *aux) +dz_ebus_match(device_t parent, cfdata_t cf, void *aux) { struct ebus_attach_args *iba; - struct _Usart *us; + struct _Usart *us; iba = aux; if (strcmp(iba->ia_name, "dz") != 0) - return (0); + return 0; - us = (struct _Usart *)iba->ia_vaddr; - if ((us == NULL) || - (us->Tag != PMTTAG_USART)) - return (0); + us = (struct _Usart *)iba->ia_vaddr; + if ((us == NULL) || + (us->Tag != PMTTAG_USART)) + return 0; - return (1); + return 1; } void -dz_ebus_attach(struct device *parent, struct device *self, void *aux) +dz_ebus_attach(device_t parent, device_t self, void *aux) { struct ebus_attach_args *iba; struct dz_softc *sc; @@ -641,7 +647,7 @@ sc->sc_dr = (struct _Usart *)iba->ia_vaddr; #if DEBUG - printf(" virt=%p ", (void *)sc->sc_dr); + printf(" virt=%p ", (void *)sc->sc_dr); #endif printf(": neilsart 1 line"); @@ -658,22 +664,21 @@ sc->sc_dz.dz_tty = tty_alloc(); evcnt_attach_dynamic(&sc->sc_rintrcnt, EVCNT_TYPE_INTR, NULL, - sc->sc_dev.dv_xname, "rintr"); + sc->sc_dev.dv_xname, "rintr"); evcnt_attach_dynamic(&sc->sc_tintrcnt, EVCNT_TYPE_INTR, NULL, - sc->sc_dev.dv_xname, "tintr"); + sc->sc_dev.dv_xname, "tintr"); - /* Initialize hw regs */ + /* Initialize hw regs */ #if 0 DZ_WRITE_WORD(dr_csr, DZ_CSR_MSE | DZ_CSR_RXIE | DZ_CSR_TXIE); DZ_WRITE_BYTE(dr_dtr, 0); DZ_WRITE_BYTE(dr_break, 0); #endif - /* Switch the console to virtual mode */ - dzcn = sc->sc_dr; - /* And test it */ + /* Switch the console to virtual mode */ + dzcn = sc->sc_dr; + /* And test it */ printf("\n"); - } static int @@ -683,9 +688,9 @@ static int cache = -1; if (cache != -1) - return (cache); + return cache; - return (cache = cdevsw_lookup_major(&dz_cdevsw)); + return cache = cdevsw_lookup_major(&dz_cdevsw); } int @@ -700,14 +705,15 @@ #define USI_INTERRUPTS (USI_INTRS|USI_TXRDY) - for (; ((csr = (dzr->ChannelStatus & dzr->IntrMask)) & USI_INTERRUPTS) != 0;) { + for (; ((csr = (dzr->ChannelStatus & dzr->IntrMask)) & + USI_INTERRUPTS) != 0;) { if ((csr & USI_INTRS) != 0) dzrint(sc, csr); if ((csr & USI_TXRDY) != 0) dzxint(sc, csr); } - return (0); + return 0; } void @@ -717,11 +723,18 @@ dzcn = (struct _Usart *)addr; #if 0 - /* Initialize enough to xmit/recv via polling. - * Bootloader might or might not have done it. - */ - dzcn->Control = USC_RXEN|USC_TXEN|USC_BPC_8|USC_NONE|USC_1STOP|USC_CLKDIV_4; - dzcn->Baud = 0x29; /* 38400 */ + /* + * Initialize enough to xmit/recv via polling. + * Bootloader might or might not have done it. + */ + dzcn->Control = + USC_RXEN | + USC_TXEN | + USC_BPC_8 | + USC_NONE | + USC_1STOP | + USC_CLKDIV_4; + dzcn->Baud = 0x29; /* 38400 */ #endif /* @@ -732,7 +745,8 @@ cn_tab->cn_dev = makedev(dz_ebus_getmajor(), 0); } -void dz_ebus_cninit(struct consdev *cn) +void +dz_ebus_cninit(struct consdev *cn) { } @@ -744,14 +758,14 @@ c = 0; s = spltty(); - while ((dzcn->ChannelStatus & USI_RXRDY) == 0) - DELAY(10); - c = dzcn->RxData; + while ((dzcn->ChannelStatus & USI_RXRDY) == 0) + DELAY(10); + c = dzcn->RxData; splx(s); if (c == 13) /* map cr->ln */ c = 10; - return (c); + return c; } int dzflipped = 0; @@ -766,11 +780,11 @@ s = spltty(); #if 1 - /* Keep wired to hunt for a bug */ - if (dzcn && (dzcn != (struct _Usart *)0xfff90000)) { - dzcn = (struct _Usart *)0xfff90000; - dzflipped++; - } + /* Keep wired to hunt for a bug */ + if (dzcn && (dzcn != (struct _Usart *)0xfff90000)) { + dzcn = (struct _Usart *)0xfff90000; + dzflipped++; + } #endif /* Wait until ready */ @@ -784,10 +798,10 @@ splx(s); } -/* Called before/after going into poll mode +/* + * Called before/after going into poll mode */ -void +void dz_ebus_cnpollc(dev_t dev, int on) { } -