static int c101_open(struct net_device *dev) { port_t *port = dev_to_port(dev); int result; result = hdlc_open(dev); if (result) return result; writeb(1, port->win0base + C101_DTR); sca_out(0, MSCI1_OFFSET + CTL, port); /* RTS uses ch#2 output */ sca_open(dev); /* DCD is connected to port 2 !@#$%^& - disable MSCI0 CDCD interrupt */ sca_out(IE1_UDRN, MSCI0_OFFSET + IE1, port); sca_out(IE0_TXINT, MSCI0_OFFSET + IE0, port); set_carrier(port); /* enable MSCI1 CDCD interrupt */ sca_out(IE1_CDCD, MSCI1_OFFSET + IE1, port); sca_out(IE0_RXINTA, MSCI1_OFFSET + IE0, port); sca_out(0x48, IER0, port); /* TXINT #0 and RXINT #1 */ c101_set_iface(port); return 0; }
void mtm_get_mtm_pid (char *key_file, SLONG *mtm_process_id, SLONG *return_code) { int fd; /* * Get the MTM process ID, which is stored in the key file by MTM */ if ((fd = sca_open (key_file, O_RDONLY)) == FAILURE) { MTM_LOG(errno); *return_code = errno; return; } if (sca_read (fd, (void *) mtm_process_id, sizeof (SLONG)) == FAILURE) { MTM_LOG(errno); *return_code = errno; return; } if (sca_close (fd) == FAILURE) { MTM_LOG(errno); *return_code = errno; return; } return; }
static int pc300_open(struct net_device *dev) { port_t *port = dev_to_port(dev); int result = hdlc_open(dev); if (result) return result; sca_open(dev); pc300_set_iface(port); return 0; }
static int n2_open(struct net_device *dev) { port_t *port = dev_to_port(dev); int io = port->card->io; u8 mcr = inb(io + N2_MCR) | (port->phy_node ? TX422_PORT1:TX422_PORT0); int result; result = hdlc_open(dev); if (result) return result; mcr &= port->phy_node ? ~DTR_PORT1 : ~DTR_PORT0; /* set DTR ON */ outb(mcr, io + N2_MCR); outb(inb(io + N2_PCR) | PCR_ENWIN, io + N2_PCR); /* open window */ outb(inb(io + N2_PSR) | PSR_DMAEN, io + N2_PSR); /* enable dma */ sca_open(dev); n2_set_iface(port); return 0; }