enum su_type su_type;
unsigned int type_probed; /* XXX Stupid */
int port_node;
- unsigned int irq;
#ifdef CONFIG_SERIO
struct serio *serio;
}
if (up->su_type != SU_PORT_PORT) {
- retval = request_irq(up->irq, sunsu_kbd_ms_interrupt,
+ retval = request_irq(up->port.irq, sunsu_kbd_ms_interrupt,
SA_SHIRQ, su_typev[up->su_type], up);
} else {
- retval = request_irq(up->irq, sunsu_serial_interrupt,
+ retval = request_irq(up->port.irq, sunsu_serial_interrupt,
SA_SHIRQ, su_typev[up->su_type], up);
}
if (retval) {
- printk("su: Cannot register IRQ %d\n", up->irq);
+ printk("su: Cannot register IRQ %d\n", up->port.irq);
return retval;
}
*/
(void) serial_in(up, UART_RX);
- free_irq(up->irq, up);
+ free_irq(up->port.irq, up);
}
static void
#ifdef CONFIG_SERIO
-static spinlock_t sunsu_serio_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(sunsu_serio_lock);
static int sunsu_serio_write(struct serio *serio, unsigned char ch)
{
* This is correct on both architectures.
*/
up->port.mapbase = dev->resource[0].start;
- up->irq = dev->irqs[0];
+ up->port.irq = dev->irqs[0];
goto ebus_done;
}
}
/* Same on sparc64. Cool architecure... */
up->port.membase = (char *) isa_dev->resource.start;
up->port.mapbase = isa_dev->resource.start;
- up->irq = isa_dev->irq;
+ up->port.irq = isa_dev->irq;
goto ebus_done;
}
}
/*
* There is no intr property on MrCoffee, so hardwire it.
*/
- up->irq = IRQ_4M(13);
+ up->port.irq = IRQ_4M(13);
#endif
ebus_done:
static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up, int channel)
{
+#ifdef CONFIG_SERIO
struct serio *serio;
+#endif
up->port.line = channel;
up->port.type = PORT_UNKNOWN;
printk(KERN_INFO "su%d at 0x%p (irq = %s) is a %s\n",
channel,
- up->port.membase, __irq_itoa(up->irq),
+ up->port.membase, __irq_itoa(up->port.irq),
sunsu_type(&up->port));
#ifdef CONFIG_SERIO
if (ret < 0)
return ret;
+ sunsu_serial_console_init();
for (i = 0; i < UART_NR; i++) {
struct uart_sunsu_port *up = &sunsu_ports[i];
* Console must be initiated after the generic initialization.
*/
sunsu_serial_init();
- sunsu_serial_console_init();
return 0;
}