]> Joshua Wise's Git repositories - netwatch.git/blobdiff - net/3c90x.c
Actually invoke the 3c90x driver load routine.
[netwatch.git] / net / 3c90x.c
index e7b95e950a0c2e39b3a081d1ad39b9775feb8257..f678aaf21a377f6d8e6a4a580ec5ba9c6c299295 100644 (file)
  */
 
 #include "etherboot-compat.h"
+#include "net.h"
 #include <timer.h>
 #include <io.h>
 #include <pci.h>
+#include <pci-bother.h>
 #include <minilib.h>
 #include <output.h>
 
@@ -250,6 +252,7 @@ static struct
     RXD                        ReceiveUPD;
     }
     INF_3C90X;
+static struct nic nic;
 
 
 /*** a3c90x_internal_IssueCommand: sends a command to the 3c90x card
@@ -689,7 +692,6 @@ void a3c90x_disable(struct dev *dev)
  ***/
 static int a3c90x_probe(struct pci_dev * pci, void * data)
 {
-    struct nic *nic = (struct nic *)data;
     INF_3C90X.is3c556 = (pci->did == 0x6055);
  
     int i, c;
@@ -713,8 +715,9 @@ static int a3c90x_probe(struct pci_dev * pci, void * data)
 /*
     adjust_pci_dev(pci);
 */
-    nic->ioaddr = ioaddr & ~3;
-    nic->irqno = 0;
+    pci_bother_add(pci);
+    nic.ioaddr = ioaddr & ~3;
+    nic.irqno = 0;
 
     INF_3C90X.IOAddr = ioaddr & ~3;
     INF_3C90X.CurrentWindow = 255;
@@ -824,7 +827,7 @@ static int a3c90x_probe(struct pci_dev * pci, void * data)
     /** Fill in our entry in the etherboot arp table **/
 /* XXX ? for lwip? 
     for(i=0;i<ETH_ALEN;i++)
-       nic->node_addr[i] = (eeprom[HWADDR_OFFSET + i/2] >> (8*((i&1)^1))) & 0xff;
+       nic.node_addr[i] = (eeprom[HWADDR_OFFSET + i/2] >> (8*((i&1)^1))) & 0xff;
 */
 
     /** Read the media options register, print a message and set default
@@ -964,8 +967,8 @@ static int a3c90x_probe(struct pci_dev * pci, void * data)
                                  cmdAcknowledgeInterrupt, 0x661);
 
     /* * Set our exported functions **/
-    nic->poll     = a3c90x_poll;
-    nic->transmit = a3c90x_transmit;
+    nic.poll     = a3c90x_poll;
+    nic.transmit = a3c90x_transmit;
 
     return 1;
 }
This page took 0.028164 seconds and 4 git commands to generate.