summaryrefslogtreecommitdiffstats
path: root/drivers/net/ni52.c
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2008-03-19 10:44:09 +0100
committerJeff Garzik <jeff@garzik.org>2008-03-26 05:18:02 +0100
commit7f8cfd560875fd643024c02ea25d4f3b8f1fd31c (patch)
tree143205269d2f04732a843e5a1de2c7a60d315ea6 /drivers/net/ni52.c
parentni52: make ->base char __iomem * (diff)
downloadlinux-7f8cfd560875fd643024c02ea25d4f3b8f1fd31c.tar.xz
linux-7f8cfd560875fd643024c02ea25d4f3b8f1fd31c.zip
ni52: clean up initialization of priv
* initialize spinlock once * check586() used to be done before we'd allocated ->priv; these days it's there from the very beginning, so we don't have to play with private copy. Consequently, we don't need to mess with reinitializing ->base, etc. afterwards. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ni52.c')
-rw-r--r--drivers/net/ni52.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index 8eac7146a884..3b1c4af615b6 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -300,8 +300,7 @@ static int ni52_open(struct net_device *dev)
static int check586(struct net_device *dev, unsigned size)
{
unsigned long where = dev->mem_start;
- struct priv pb;
- struct priv *p = /* (struct priv *) dev->priv*/ &pb;
+ struct priv *p = dev->priv;
char __iomem *iscp_addrs[2];
int i;
@@ -309,6 +308,7 @@ static int check586(struct net_device *dev, unsigned size)
p->base = p->mapped + size - 0x01000000;
p->memtop = p->mapped + size;
p->scp = (struct scp_struct __iomem *)(p->base + SCP_DEFAULT_ADDRESS);
+ p->scb = (struct scb_struct __iomem *) p->mapped;
memset_io(p->scp, 0, sizeof(struct scp_struct));
for (i = 0; i < sizeof(struct scp_struct); i++)
/* memory was writeable? */
@@ -335,6 +335,9 @@ static int check586(struct net_device *dev, unsigned size)
if (readb(&p->iscp->busy))
return 0;
}
+
+ p->iscp = (struct iscp_struct __iomem *)
+ ((char __iomem *)p->scp - sizeof(struct iscp_struct));
return 1;
}
@@ -348,13 +351,6 @@ static void alloc586(struct net_device *dev)
ni_reset586();
mdelay(32);
- spin_lock_init(&p->spinlock);
-
- p->scp = (struct scp_struct __iomem *) (p->base + SCP_DEFAULT_ADDRESS);
- p->scb = (struct scb_struct __iomem *) isa_bus_to_virt(dev->mem_start);
- p->iscp = (struct iscp_struct __iomem *)
- ((char __iomem *)p->scp - sizeof(struct iscp_struct));
-
memset_io(p->iscp, 0, sizeof(struct iscp_struct));
memset_io(p->scp , 0, sizeof(struct scp_struct));
@@ -445,6 +441,8 @@ static int __init ni52_probe1(struct net_device *dev, int ioaddr)
dev->mem_start = memstart;
dev->mem_end = memend;
+ spin_lock_init(&priv->spinlock);
+
if (!request_region(ioaddr, NI52_TOTAL_SIZE, DRV_NAME))
return -EBUSY;
@@ -520,11 +518,6 @@ static int __init ni52_probe1(struct net_device *dev, int ioaddr)
dev->mem_end = dev->mem_start + size;
#endif
- memset(priv, 0, sizeof(struct priv));
-
- priv->mapped = (char __iomem *)isa_bus_to_virt(dev->mem_start);
- priv->memtop = priv->mapped + size;
- priv->base = priv->mapped + size - 0x01000000;
alloc586(dev);
/* set number of receive-buffs according to memsize */