diff options
author | Michael Brown | 2005-04-13 03:01:33 +0200 |
---|---|---|
committer | Michael Brown | 2005-04-13 03:01:33 +0200 |
commit | 984813595051cf2c7da695276134dfc374b50b29 (patch) | |
tree | 08864a7f57da0ef8a7eaffb477ffe7585ac24045 /src/drivers/net/sis900.c | |
parent | Hand-finished (diff) | |
download | ipxe-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.c | 28 |
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"), |