summaryrefslogtreecommitdiffstats
path: root/drivers/sbus/char/su.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sbus/char/su.c')
-rw-r--r--drivers/sbus/char/su.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/drivers/sbus/char/su.c b/drivers/sbus/char/su.c
index 42a233753..8ed6660b7 100644
--- a/drivers/sbus/char/su.c
+++ b/drivers/sbus/char/su.c
@@ -1,4 +1,4 @@
-/* $Id: su.c,v 1.8 1998/04/01 05:07:50 ecd Exp $
+/* $Id: su.c,v 1.10 1998/05/29 06:00:26 ecd Exp $
* su.c: Small serial driver for keyboard/mouse interface on Ultra/AX
*
* Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
@@ -21,6 +21,7 @@
#include <asm/oplib.h>
#include <asm/io.h>
#include <asm/ebus.h>
+#include <asm/irq.h>
#include "sunserial.h"
#include "sunkbd.h"
@@ -151,7 +152,7 @@ su_interrupt(int irq, void *dev_id, struct pt_regs * regs)
unsigned char status;
#ifdef SERIAL_DEBUG_INTR
- printk("su_interrupt(%d)...", irq);
+ printk("su_interrupt(%s)...", __irq_itoa(irq));
#endif
if (su_inb(info, UART_IIR) & UART_IIR_NO_INT)
@@ -186,7 +187,8 @@ startup(struct su_struct * info)
}
#ifdef SERIAL_DEBUG_OPEN
- printk("starting up su%d (irq %x)...", info->line, info->irq);
+ printk("starting up su%d (irq %s)...", info->line,
+ __irq_itoa(info->irq));
#endif
if (info->type == PORT_16750)
@@ -405,18 +407,21 @@ static void
autoconfig(struct su_struct *info)
{
unsigned char status1, status2, scratch, scratch2;
- struct linux_ebus_device *dev;
+ struct linux_ebus_device *dev = 0;
struct linux_ebus *ebus;
unsigned long flags;
- for_all_ebusdev(dev, ebus) {
- if (!strncmp(dev->prom_name, "su", 2)) {
- if (dev->prom_node == info->kbd_node)
- break;
- if (dev->prom_node == info->ms_node)
- break;
+ for_each_ebus(ebus) {
+ for_each_ebusdev(dev, ebus) {
+ if (!strncmp(dev->prom_name, "su", 2)) {
+ if (dev->prom_node == info->kbd_node)
+ goto ebus_done;
+ if (dev->prom_node == info->ms_node)
+ goto ebus_done;
+ }
}
}
+ebus_done:
if (!dev)
return;
@@ -427,8 +432,8 @@ autoconfig(struct su_struct *info)
info->irq = dev->irqs[0];
#ifdef DEBUG_SERIAL_OPEN
- printk("Found 'su' at %016lx IRQ %08x\n",
- dev->base_address[0], dev->irqs[0]);
+ printk("Found 'su' at %016lx IRQ %d,%x\n", dev->base_address[0],
+ __irq_itoa(dev->irqs[0]));
#endif
info->magic = SERIAL_MAGIC;
@@ -564,8 +569,8 @@ __initfunc(int su_init(void))
if (info->type == PORT_UNKNOWN)
continue;
- printk(KERN_INFO "%s at %16lx (irq = %08x) is a %s\n",
- info->name, info->port, info->irq,
+ printk(KERN_INFO "%s at %16lx (irq = %s) is a %s\n",
+ info->name, info->port, __irq_itoa(info->irq),
uart_config[info->type].name);
startup(info);