summaryrefslogtreecommitdiffstats
path: root/drivers/tc
diff options
context:
space:
mode:
authorHarald Koerfgen <hkoerfg@web.de>1999-04-11 17:06:16 +0000
committerHarald Koerfgen <hkoerfg@web.de>1999-04-11 17:06:16 +0000
commit67134debfe2833bc2cfb4c42f754560c795baa71 (patch)
tree6e1aec3ac67d13f11dd4faded5471d2e2a2d36b6 /drivers/tc
parentcf32452ae9bc67a48c2f0fb3719b31a78512ed82 (diff)
DECstation updates
Diffstat (limited to 'drivers/tc')
-rw-r--r--drivers/tc/Makefile12
-rw-r--r--drivers/tc/tc.c6
-rw-r--r--drivers/tc/zs.c11
3 files changed, 23 insertions, 6 deletions
diff --git a/drivers/tc/Makefile b/drivers/tc/Makefile
index b1f4c4644..701214ea5 100644
--- a/drivers/tc/Makefile
+++ b/drivers/tc/Makefile
@@ -14,8 +14,20 @@ ALL_SUB_DIRS :=
L_TARGET := tc.a
L_OBJS := tc.o
+# Nasty trick as nobody references tcsyms.o, but we still want it linked.
+# Stolen from pci Makefile
+ifeq ($(CONFIG_MODULES),y)
+O_TARGET = tc_syms.o
+OX_OBJS = tcsyms.o
+O_OBJS = tc.o
+L_OBJS := tc_syms.o
+else
+L_OBJS := tc.o
+endif
+
ifdef CONFIG_ZS
L_OBJS += zs.o
endif
include $(TOPDIR)/Rules.make
+
diff --git a/drivers/tc/tc.c b/drivers/tc/tc.c
index 36183ff9c..c5e3d4c6b 100644
--- a/drivers/tc/tc.c
+++ b/drivers/tc/tc.c
@@ -135,19 +135,25 @@ __initfunc(static void tc_probe(unsigned long startaddr, unsigned long size, int
switch (slot) {
case 0:
tc_bus[slot].interrupt = TC0;
+ break;
case 1:
tc_bus[slot].interrupt = TC1;
+ break;
case 2:
tc_bus[slot].interrupt = TC2;
+ break;
/*
* Yuck! DS5000/200 onboard devices
*/
case 5:
tc_bus[slot].interrupt = SCSI_INT;
+ break;
case 6:
tc_bus[slot].interrupt = ETHER;
+ break;
default:
tc_bus[slot].interrupt = -1;
+ break;
}
}
}
diff --git a/drivers/tc/zs.c b/drivers/tc/zs.c
index 3dbb837a2..887fea87f 100644
--- a/drivers/tc/zs.c
+++ b/drivers/tc/zs.c
@@ -42,7 +42,6 @@
#include <asm/segment.h>
#include <asm/bitops.h>
#include <asm/uaccess.h>
-#include <asm/wbflush.h>
#include <asm/dec/interrupts.h>
#include <asm/dec/machtype.h>
#include <asm/dec/tc.h>
@@ -196,7 +195,7 @@ static inline unsigned char read_zsreg(struct dec_zschannel *channel,
if (reg != 0) {
*channel->control = reg & 0xf;
- wbflush(); RECOVERY_DELAY;
+ RECOVERY_DELAY;
}
retval = *channel->control;
RECOVERY_DELAY;
@@ -208,10 +207,10 @@ static inline void write_zsreg(struct dec_zschannel *channel,
{
if (reg != 0) {
*channel->control = reg & 0xf;
- wbflush(); RECOVERY_DELAY;
+ RECOVERY_DELAY;
}
*channel->control = value;
- wbflush(); RECOVERY_DELAY;
+ RECOVERY_DELAY;
return;
}
@@ -228,7 +227,7 @@ static inline void write_zsdata(struct dec_zschannel *channel,
unsigned char value)
{
*channel->data = value;
- wbflush(); RECOVERY_DELAY;
+ RECOVERY_DELAY;
return;
}
@@ -1830,7 +1829,7 @@ zs_console_putchar(struct dec_serial *info, char ch)
while (!(*(info->zs_channel->control) & Tx_BUF_EMP) && --loops)
RECOVERY_DELAY;
*(info->zs_channel->data) = ch;
- wbflush(); RECOVERY_DELAY;
+ RECOVERY_DELAY;
restore_flags(flags);
}