#ifdef CONFIG_PM 
#ifdef CONFIG_PM_LEGACY 
rs68328_init(void){	int flags, i;	struct m68k_serial *info;	serial_driver = alloc_tty_driver(NR_PORTS);	if (!serial_driver)		return -ENOMEM;	show_serial_version();	/* Initialize the tty_driver structure */	/* SPARC: Not all of this is exactly right for us. */		serial_driver->name = "ttyS";	serial_driver->major = TTY_MAJOR;	serial_driver->minor_start = 64;	serial_driver->type = TTY_DRIVER_TYPE_SERIAL;	serial_driver->subtype = SERIAL_TYPE_NORMAL;	serial_driver->init_termios = tty_std_termios;	serial_driver->init_termios.c_cflag = 			m68328_console_cbaud | CS8 | CREAD | HUPCL | CLOCAL;	serial_driver->flags = TTY_DRIVER_REAL_RAW;	tty_set_operations(serial_driver, &rs_ops);	if (tty_register_driver(serial_driver)) {		put_tty_driver(serial_driver);		printk(KERN_ERR "Couldn't register serial driver\n");		return -ENOMEM;	}	save_flags(flags); cli();	for(i=0;i<NR_PORTS;i++) {	    info = &m68k_soft[i];	    info->magic = SERIAL_MAGIC;	    info->port = (int) &uart_addr[i];	    info->tty = 0;	    info->irq = uart_irqs[i];	    info->custom_divisor = 16;	    info->close_delay = 50;	    info->closing_wait = 3000;	    info->x_char = 0;	    info->event = 0;	    info->count = 0;	    info->blocked_open = 0;	    INIT_WORK(&info->tqueue, do_softint, info);	    INIT_WORK(&info->tqueue_hangup, do_serial_hangup, info);	    init_waitqueue_head(&info->open_wait);	    init_waitqueue_head(&info->close_wait);	    info->line = i;	    info->is_cons = 1; /* Means shortcuts work */	    	    printk("%s%d at 0x%08x (irq = %d)", serial_driver->name, info->line, 		   info->port, info->irq);	    printk(" is a builtin MC68328 UART\n");	    	    IRQ_ports[info->irq] = info;	/* waste of space */#ifdef CONFIG_M68VZ328		if (i > 0 )			PJSEL &= 0xCF;  /* PSW enable second port output */#endif	    if (request_irq(uart_irqs[i],			    rs_interrupt,			    IRQ_FLG_STD,			    "M68328_UART", NULL))                panic("Unable to attach 68328 serial interrupt\n");#ifdef CONFIG_PM	    serial_pm[i] = pm_register(PM_SYS_DEV, PM_SYS_COM, serial_pm_callback);	    if (serial_pm[i])		    serial_pm[i]->data = info;#endif	}	restore_flags(flags);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bca73e4bf8563d83f7856164caa44d5f42e44cca/68328serial.c/buggy/drivers/serial/68328serial.c