summaryrefslogtreecommitdiffstats
path: root/drivers/net/sgiseeq.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-08-25 09:12:35 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-08-25 09:12:35 +0000
commitc7fc24dc4420057f103afe8fc64524ebc25c5d37 (patch)
tree3682407a599b8f9f03fc096298134cafba1c9b2f /drivers/net/sgiseeq.c
parent1d793fade8b063fde3cf275bf1a5c2d381292cd9 (diff)
o Merge with Linux 2.1.116.
o New Newport console code. o New G364 console code.
Diffstat (limited to 'drivers/net/sgiseeq.c')
-rw-r--r--drivers/net/sgiseeq.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index 82f75efbb..ada43b198 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -1,11 +1,9 @@
-/*
+/* $Id: sgiseeq.c,v 1.3 1997/11/16 13:57:45 alan Exp $
+ *
* sgiseeq.c: Seeq8003 ethernet driver for SGI machines.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
- *
- * $Id: sgiseeq.c,v 1.3 1997/11/16 13:57:45 alan Exp $
*/
-
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/types.h>
@@ -695,6 +693,7 @@ int sgiseeq_init(struct device *dev, struct sgiseeq_regs *sregs,
dev->irq = irq;
dev->dma = 0;
ether_setup(dev);
+
return 0;
}
@@ -724,15 +723,20 @@ static inline void str2eaddr(unsigned char *ea, unsigned char *str)
int sgiseeq_probe(struct device *dev)
{
+ static int initialized;
char *ep;
+ if (initialized) /* Already initialized? */
+ return 0;
+ initialized++;
+
/* First get the ethernet address of the onboard
* interface from ARCS.
+ * (This is fragile; PROM doesn't like running from cache.)
*/
ep = romvec->get_evar("eaddr");
str2eaddr(onboard_eth_addr, ep);
return sgiseeq_init(dev,
(struct sgiseeq_regs *) (KSEG1ADDR(0x1fbd4000)),
&hpc3c0->ethregs, 3);
-
}