summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/sis900.c
diff options
context:
space:
mode:
authorMichael Brown2005-04-13 03:01:33 +0200
committerMichael Brown2005-04-13 03:01:33 +0200
commit984813595051cf2c7da695276134dfc374b50b29 (patch)
tree08864a7f57da0ef8a7eaffb477ffe7585ac24045 /src/drivers/net/sis900.c
parentHand-finished (diff)
downloadipxe-984813595051cf2c7da695276134dfc374b50b29.tar.gz
ipxe-984813595051cf2c7da695276134dfc374b50b29.tar.xz
ipxe-984813595051cf2c7da695276134dfc374b50b29.zip
Finished by hand
Diffstat (limited to 'src/drivers/net/sis900.c')
-rw-r--r--src/drivers/net/sis900.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/drivers/net/sis900.c b/src/drivers/net/sis900.c
index daf0ecfd..bb0ca173 100644
--- a/src/drivers/net/sis900.c
+++ b/src/drivers/net/sis900.c
@@ -52,6 +52,9 @@
/* Globals */
+static struct nic_operations sis900_operations;
+static struct pci_driver sis900_driver;
+
static int sis900_debug = 0;
static unsigned short vendor, dev_id;
@@ -308,9 +311,7 @@ static int sis635_get_mac_addr(struct pci_device * pci_dev __unused, struct nic
*/
static int sis900_probe ( struct dev *dev ) {
-
struct nic *nic = nic_device ( dev );
-
struct pci_device *pci = pci_device ( dev );
int i;
int found=0;
@@ -318,12 +319,15 @@ static int sis900_probe ( struct dev *dev ) {
u8 revision;
int ret;
+ if ( ! find_pci_device ( pci, &sis900_driver ) )
+ return 0;
+
if (pci->ioaddr == 0)
return 0;
nic->irqno = 0;
- nic->ioaddr = pci->ioaddr & ~3;
- ioaddr = pci->ioaddr & ~3;
+ nic->ioaddr = pci->ioaddr;
+ ioaddr = pci->ioaddr;
vendor = pci->vendor;
dev_id = pci->dev_id;
@@ -409,14 +413,6 @@ static int sis900_probe ( struct dev *dev ) {
/* initialize device */
sis900_init(nic);
-static struct nic_operations sis900_operations;
-static struct nic_operations sis900_operations = {
- .connect = dummy_connect,
- .poll = sis900_poll,
- .transmit = sis900_transmit,
- .irq = sis900_irq,
- .disable = sis900_disable,
-};
nic->nic_op = &sis900_operations;
return 1;
@@ -1253,6 +1249,14 @@ sis900_irq(struct nic *nic __unused, irq_action_t action __unused)
}
}
+static struct nic_operations sis900_operations = {
+ .connect = dummy_connect,
+ .poll = sis900_poll,
+ .transmit = sis900_transmit,
+ .irq = sis900_irq,
+ .disable = sis900_disable,
+};
+
static struct pci_id sis900_nics[] = {
PCI_ROM(0x1039, 0x0900, "sis900", "SIS900"),
PCI_ROM(0x1039, 0x7016, "sis7016", "SIS7016"),