summaryrefslogtreecommitdiffstats
path: root/nicrealtek.c
diff options
context:
space:
mode:
Diffstat (limited to 'nicrealtek.c')
-rw-r--r--nicrealtek.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/nicrealtek.c b/nicrealtek.c
index 8349b42..fb8e9e1 100644
--- a/nicrealtek.c
+++ b/nicrealtek.c
@@ -59,16 +59,19 @@ static int nicrealtek_shutdown(void *data)
int nicrealtek_init(void)
{
+ struct pci_dev *dev = NULL;
+
if (rget_io_perms())
return 1;
- /* No need to check for errors, pcidev_init() will not return in case of errors. */
- io_base_addr = pcidev_init(PCI_BASE_ADDRESS_0, nics_realtek);
- if (register_shutdown(nicrealtek_shutdown, NULL))
+ dev = pcidev_init(nics_realtek, PCI_BASE_ADDRESS_0);
+ if (!dev)
return 1;
+ io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
+
/* Beware, this ignores the vendor ID! */
- switch (pcidev_dev->device_id) {
+ switch (dev->device_id) {
case 0x8139: /* RTL8139 */
case 0x1211: /* SMC 1211TX */
default:
@@ -81,6 +84,9 @@ int nicrealtek_init(void)
break;
}
+ if (register_shutdown(nicrealtek_shutdown, NULL))
+ return 1;
+
register_par_programmer(&par_programmer_nicrealtek, BUS_PARALLEL);
return 0;
OpenPOWER on IntegriCloud