OUTB
OUTB(atgep, L1E_RXF0_PAGE0, RXF_VALID); /* 0 */
OUTB(atgep, L1E_RXF0_PAGE1, RXF_VALID); /* 1 */
OUTB(atgep, L1E_RXF0_PAGE0 + 2, 0);
OUTB(atgep, L1E_RXF0_PAGE0 + 3, 0);
OUTB(atgep, L1E_RXF0_PAGE0 + 4, 0);
OUTB(atgep, L1E_RXF0_PAGE0 + 5, 0);
OUTB(atgep, L1E_RXF0_PAGE0 + 6, 0);
OUTB(atgep, L1E_RXF0_PAGE0 + 6, 0);
OUTB(atgep, L1E_RXF0_PAGE0 + curr, RXF_VALID);
OUTB(devc, 0x00, REC_ROUTING); /* default routing set to I2S */
OUTB(devc, 0x00, REC_MONITOR); /* monitor through MULTICH_PLAY */
OUTB(devc, 0xE4, MONITOR_ROUTING); /* default monitor routing */
OUTB(devc, INB(devc, FUNCTION) | 0x40, FUNCTION);
OUTB(devc, (INB(devc, FUNCTION) & ~0x40) | 0x80, FUNCTION);
OUTB(devc, (INB(devc, FUNCTION) & ~0x40) | 0x80, FUNCTION);
OUTB(devc, (INB(devc, FUNCTION) & ~0x40) | 0x80, FUNCTION);
OUTB(devc, (INB(devc, FUNCTION) & ~0x40) | 0x80, FUNCTION);
OUTB(devc, 0x18, REC_ROUTING); /* default routing set to I2S */
OUTB(devc, INB(devc, REC_MONITOR) | 0xF, REC_MONITOR);
OUTB(devc, INB(devc, REC_MONITOR) & ~0xF, REC_MONITOR);
OUTB(devc, tmp & 0xff, SPI_DATA + 0);
OUTB(devc, (tmp >> 8) & 0xff, SPI_DATA + 1);
OUTB(devc, tmp, SPI_CONTROL);
OUTB(devc, reg, TWO_WIRE_MAP);
OUTB(devc, data, TWO_WIRE_DATA);
OUTB(devc, codec_num, TWO_WIRE_ADDR);
OUTB(devc, INB(devc, CHAN_RESET)|0x10, CHAN_RESET);
OUTB(devc, INB(devc, CHAN_RESET) & ~0x10, CHAN_RESET);
OUTB(devc, (INB(devc, MULTICH_MODE) & ~0x3) | channels,
OUTB(devc, (INB(devc, PLAY_FORMAT) & ~0xC) | 0x0, PLAY_FORMAT);
OUTB(devc, INB(devc, CHAN_RESET) | (1 << devc->rec_eng.chan),
OUTB(devc, INB(devc, CHAN_RESET) & ~(1 << devc->rec_eng.chan),
OUTB(devc, (INB(devc, REC_MODE) & ~0x3) | channels, REC_MODE);
OUTB(devc, (INB(devc, REC_FORMAT) & ~0x3) | 0x0, REC_FORMAT);
OUTB(devc, bVal, MISC_REG);
OUTB(devc, bVal, FUNCTION);
OUTB(devc, 0x0, AC97_INTR_MASK);
OUTB(devc, index, devc->regs + 0x1e);
OUTB(devc, index, devc->regs + 0x1e);
OUTB(dev, AC97A, index);
OUTB(dev, AC97A, index);
OUTB(dev, index, AC97A);
OUTB(dev, index, AC97A);
OUTB(devc, devc->base + REG_CODEC + 3, 0x02);
OUTB(devc, portc->base + OFF_CTRL, CTRL_START | CTRL_AUTOSTART);
OUTB(devc, portc->base + OFF_CTRL, CTRL_TERMINATE);
OUTB(devc, portc->base + OFF_CTRL, CTRL_TERMINATE); /* Stop */
OUTB(devc, portc->base + OFF_PLAYFMT,
OUTB(devc, portc->base + OFF_CTRL, CTRL_TERMINATE); /* Stop */
OUTB(devc, portc->base + OFF_RECFIFO, RECFIFO_ENABLE);
OUTB(portc->devc, portc->base + OFF_CTRL, CTRL_TERMINATE);
OUTB(devc, portc->base + OFF_CTRL, CTRL_TERMINATE);
OUTB(dp, GPCR, GPCR_OUT(0), &err, usberr);
OUTB(dp, GPR, 0, &err, usberr);
OUTB(dp, NCR, NCR_LBK_NORMAL | NCR_RST, &err, usberr);
OUTB(dp, NCR, NCR_LBK_NORMAL, &err, usberr);
OUTB(dp, TCR, 0, &err, usberr);
OUTB(dp, BPTR, (2 << BPTR_BPHW_SHIFT) | BPTR_JPT_200us,
OUTB(dp, FCTR, (3 << FCTR_HWOT_SHIFT) | (8 << FCTR_LWOT_SHIFT),
OUTB(dp, USBC, USBC_EP3ACK | 0x06, &err, usberr);
OUTB(dp, WCR, 0, &err, usberr);
OUTB(dp, RCR, lp->rcr, &err, usberr);
OUTB(dp, RCR, lp->rcr, &err, usberr);
OUTB(dp, RCR, lp->rcr | RCR_PRMSC, &err, usberr);
OUTB(dp, RCR, lp->rcr, &err, usberr);
OUTB(dp, FCR, fcr, &err, usberr);
OUTB(dp, EPAR, addr, errp, usberr);
OUTB(dp, EPCR, which | EPCR_ERPRR, errp, usberr);
OUTB(dp, EPCR, 0, errp, usberr);
OUTB(dp, EPAR, addr, errp, usberr);
OUTB(dp, EPCR, which | EPCR_WEP | EPCR_ERPRW, errp, usberr);
OUTB(dp, EPCR, 0, errp, usberr);
OUTB(dp, EC1, EC1_RM, &err, usberr);
OUTB(dp, EC0, lp->ec[0], &err, usberr);
OUTB(dp, EC2, lp->ec[2], &err, usberr);
OUTB(dp, PAUSETIMER, 0x1f, &err, usberr);
OUTB(dp, RXFC, 0, &err, usberr);
OUTB(dp, EC0, lp->ec[0], &err, usberr);
OUTB(dp, EC0, lp->ec[0], &err, usberr);
OUTB(dp, ORFBFC,
OUTB(dp, RPNBFC_PN,
OUTB(dp, ORFBFC,
OUTB(dp, RPNBFC, 0, &err, usberr);
OUTB(dp, ORFBFC, 0, &err, usberr);
OUTB(dp, RPNBFC, 0, &err, usberr);
OUTB(dp, PHYA, dp->mii_phy_addr, errp, usberr);
OUTB(dp, PHYAC, index | PHYAC_RDPHY, errp, usberr);
OUTB(dp, PHYA, dp->mii_phy_addr, errp, usberr);
OUTB(dp, PHYAC, index | PHYAC_WRPHY, errp, usberr);
OUTB(dp, IPHYC, val, &err, usberr);
OUTB(dp, IPHYC, val | IPHYC_PHYR, &err, usberr);
OUTB(dp, IPHYC, val, &err, usberr);
OUTB(dp, 0x83, 0xa5, &err, usberr);
OUTB(dp, GPIO10, GPIO10_0O | GPIO10_0OE, &err, usberr);
OUTB(dp, GPIO10,
OUTB(dp, EECTRL, 0, errp, usberr);
OUTB(dp, EEOFFSET, index, errp, usberr);
OUTB(dp, EECTRL, EECTRL_RD, errp, usberr);
OUTB(dp, CR, lp->cr | CR_SOFT_RST, &err, usberr);
OUTB(dp, CR, lp->cr, &err, usberr);
OUTB(dp, TCR, TCR_IFG_802_3, &err, usberr);
OUTB(dp, MSR, new, &err, usberr);
OUTB(dp, CR, lp->cr | CR_WEPROM, &err, usberr);
OUTB(dp, CR, lp->cr, &err, usberr);
OUTB(dp, CR, lp->cr | CR_AUTOLOAD, &err, usberr);
OUTB(sc, KCS_CTL_STS, KCS_CONTROL_GET_STATUS_ABORT);
OUTB(sc, KCS_DATA, 0x00);
OUTB(sc, KCS_DATA, KCS_DATA_IN_READ);
OUTB(sc, KCS_CTL_STS, KCS_CONTROL_WRITE_START);
OUTB(sc, KCS_DATA, data);
OUTB(sc, KCS_CTL_STS, KCS_CONTROL_WRITE_END);
OUTB(sc, KCS_DATA, data);
OUTB(sc, KCS_DATA, KCS_DATA_IN_READ);
OUTB(MCR, mcr|DTR);
OUTB(LCR, (lcr & ~SETBREAK));
OUTB(MCR, INB(MCR) & ~ ASY_LOOP);
OUTB(MCR, OUT2);
OUTB(ICR, (icr & ~RIEN));
OUTB(SPR, 0);
OUTB(ICR, 0);
OUTB(LCR, DLAB);
OUTB(DAT, (asyspdtab[baudrate] *
OUTB(ICR, ((asyspdtab[baudrate] *
OUTB(LCR, lcr);
OUTB(FIFOR, FIFO_ON | FIFODMA | FIFORXFLSH |
OUTB(MCR, RTS|OUT2);
OUTB(MCR, DTR|RTS|OUT2);
OUTB(ICR, icr);
OUTB(DAT, c);
OUTB(SPR, 0);
OUTB(ICR, 0);
OUTB(ICR, asy->polled_icr);
OUTB(ISR, 0x00); /* set bank 0 */
OUTB(DAT, *async->async_optr++);
OUTB(MSR, (msr & 0xF0));
OUTB(MCR, (val & ~DTR));
OUTB(LCR, (lcr & ~SETBREAK));
OUTB(LCR, (val | SETBREAK));
OUTB(DAT, *async->async_optr++);
OUTB(DAT, *async->async_optr++);
OUTB(LCR, (val | SETBREAK));
OUTB(LCR, (val | SETBREAK));
OUTB(LCR, (val & ~SETBREAK));
OUTB(ICR, icr & ~ MIEN);
OUTB(MCR, val | ASY_LOOP);
OUTB(FIFOR, FIFO_ON | FIFODMA | FIFOTXFLSH |
OUTB(FIFOR, FIFO_ON | FIFODMA | FIFORXFLSH |
OUTB(MCR, mcr_r);
OUTB(MCR, (mcr ^ RTS));
OUTB(DAT, ss);
OUTB(SPR, 0);
OUTB(ICR, 0);
OUTB(SPR, 0);
OUTB(ICR, 0);
OUTB(ISR, 0x20);
OUTB(DAT+7, 0x04); /* clear status */
OUTB(ISR, 0x40); /* set to bank 2 */
OUTB(MCR, 0x08); /* IMD */
OUTB(DAT, 0x21); /* FMD */
OUTB(ISR, 0x00); /* set to bank 0 */
OUTB(FIFOR, 0x00); /* clear fifo register */
OUTB(FIFOR, FIFO_ON | FIFODMA | FIFOTXFLSH | FIFORXFLSH |
OUTB(FIFOR, 0x00); /* NO FIFOs */
OUTB(SPR, 0);
OUTB(ICR, 0);
OUTB(LCR, DLAB); /* select baud rate generator */
OUTB(DAT+DLL, (ASY9600*asy->asy_baud_divisor_factor) & 0xff);
OUTB(DAT+DLH, ((ASY9600*asy->asy_baud_divisor_factor) >> 8) & 0xff);
OUTB(LCR, STOP1|BITS8);
OUTB(MCR, (DTR | RTS| OUT2));