]>
Commit | Line | Data |
---|---|---|
1 | #include <pci.h> | |
2 | #include <output.h> | |
3 | #include "3c905.h" | |
4 | ||
5 | static int found = 0, _bus, _dev, _fn; | |
6 | ||
7 | static int bother_3c905(pci_dev_t *dev, void *nutrinus) | |
8 | { | |
9 | if (dev->vid == 0x10B7 || dev->did == 0x9200) | |
10 | { | |
11 | outputf("Found a 3c905 to bother"); | |
12 | ||
13 | _bus = dev->bus; | |
14 | _dev = dev->dev; | |
15 | _fn = dev->fn; | |
16 | found = 1; | |
17 | ||
18 | return 1; | |
19 | } | |
20 | return 0; | |
21 | } | |
22 | ||
23 | void eth_poll() | |
24 | { | |
25 | if (!found) | |
26 | return; | |
27 | ||
28 | pci_write16(_bus, _dev, _fn, 0x04, 0xFF); | |
29 | ||
30 | pci_write16(_bus, _dev, _fn, 0x04, 0x00); | |
31 | } | |
32 | ||
33 | void eth_init() | |
34 | { | |
35 | pci_probe(bother_3c905, 0x0); | |
36 | } |