spin_lock_init(&port->lock); 
static int __init mux_probe(struct parisc_device *dev){	int i, status, ports;	u8 iodc_data[32];	unsigned long bytecnt;	struct uart_port *port;	status = pdc_iodc_read(&bytecnt, dev->hpa.start, 0, iodc_data, 32);	if(status != PDC_OK) {		printk(KERN_ERR "Serial mux: Unable to read IODC.\n");		return 1;	}	ports = GET_MUX_PORTS(iodc_data); 	printk(KERN_INFO "Serial mux driver (%d ports) Revision: 0.3\n", ports);	if(!port_cnt) {		mux_driver.cons = MUX_CONSOLE;		status = uart_register_driver(&mux_driver);		if(status) {			printk(KERN_ERR "Serial mux: Unable to register driver.\n");			return 1;		}		init_timer(&mux_timer);		mux_timer.function = mux_poll;	}	for(i = 0; i < ports; ++i, ++port_cnt) {		port = &mux_ports[port_cnt];		port->iobase	= 0;		port->mapbase	= dev->hpa + MUX_OFFSET + (i * MUX_LINE_OFFSET);		port->membase	= ioremap(port->mapbase, MUX_LINE_OFFSET);		port->iotype	= SERIAL_IO_MEM;		port->type	= PORT_MUX;		port->irq	= SERIAL_IRQ_NONE;		port->uartclk	= 0;		port->fifosize	= MUX_FIFO_SIZE;		port->ops	= &mux_pops;		port->flags	= UPF_BOOT_AUTOCONF;		port->line	= port_cnt;		status = uart_add_one_port(&mux_driver, port);		BUG_ON(status);	}#ifdef CONFIG_SERIAL_MUX_CONSOLE        register_console(&mux_console);#endif	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ae8c75c1c47029a64976690c37336a2be6b49778/mux.c/clean/drivers/serial/mux.c