summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/legacy.c
diff options
context:
space:
mode:
authorMichael Brown2007-03-10 19:08:33 +0100
committerMichael Brown2007-03-10 19:08:33 +0100
commit520d9c36af2f9e4f207dd7275a47ea97c668f749 (patch)
treefc665c3d4c250d3c9411219f580f5affbbf03873 /src/drivers/net/legacy.c
parentStart a new release notes file (RELNOTES) in preparation for release (diff)
downloadipxe-520d9c36af2f9e4f207dd7275a47ea97c668f749.tar.gz
ipxe-520d9c36af2f9e4f207dd7275a47ea97c668f749.tar.xz
ipxe-520d9c36af2f9e4f207dd7275a47ea97c668f749.zip
Updated ISAPnP, EISA, MCA and ISA buses to current device model.
ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and MCA (3c529) variants should build OK. None of this code is yet tested.
Diffstat (limited to 'src/drivers/net/legacy.c')
-rw-r--r--src/drivers/net/legacy.c34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/drivers/net/legacy.c b/src/drivers/net/legacy.c
index aca83eaf..d9bae1d7 100644
--- a/src/drivers/net/legacy.c
+++ b/src/drivers/net/legacy.c
@@ -64,11 +64,11 @@ static void legacy_close ( struct net_device *netdev __unused ) {
/* Nothing to do */
}
-int legacy_probe ( struct pci_device *pci,
- const struct pci_device_id *id __unused,
- int ( * probe ) ( struct nic *nic,
- struct pci_device *pci ),
- void ( * disable ) ( struct nic *nic ) ) {
+int legacy_probe ( void *hwdev,
+ void ( * set_drvdata ) ( void *hwdev, void *priv ),
+ struct device *dev,
+ int ( * probe ) ( struct nic *nic, void *hwdev ),
+ void ( * disable ) ( struct nic *nic, void *hwdev ) ) {
struct net_device *netdev;
int rc;
@@ -80,8 +80,8 @@ int legacy_probe ( struct pci_device *pci,
return -ENOMEM;
netdev->priv = &nic;
memset ( &nic, 0, sizeof ( nic ) );
- pci_set_drvdata ( pci, netdev );
- netdev->dev = &pci->dev;
+ set_drvdata ( hwdev, netdev );
+ netdev->dev = dev;
netdev->open = legacy_open;
netdev->close = legacy_close;
@@ -89,13 +89,13 @@ int legacy_probe ( struct pci_device *pci,
netdev->poll = legacy_poll;
nic.node_addr = netdev->ll_addr;
- if ( ! probe ( &nic, pci ) ) {
+ if ( ! probe ( &nic, hwdev ) ) {
free_netdev ( netdev );
return -ENODEV;
}
if ( ( rc = register_netdev ( netdev ) ) != 0 ) {
- disable ( &nic );
+ disable ( &nic, hwdev );
free_netdev ( netdev );
return rc;
}
@@ -108,22 +108,18 @@ int legacy_probe ( struct pci_device *pci,
return 0;
}
-void legacy_remove ( struct pci_device *pci,
- void ( * disable ) ( struct nic *nic ) ) {
- struct net_device *netdev = pci_get_drvdata ( pci );
+void legacy_remove ( void *hwdev,
+ void * ( * get_drvdata ) ( void *hwdev ),
+ void ( * disable ) ( struct nic *nic, void *hwdev ) ) {
+ struct net_device *netdev = get_drvdata ( hwdev );
struct nic *nic = netdev->priv;
unregister_netdev ( netdev );
- disable ( nic );
+ disable ( nic, hwdev );
free_netdev ( netdev );
legacy_registered = 0;
}
-void pci_fill_nic ( struct nic *nic, struct pci_device *pci ) {
- nic->ioaddr = pci->ioaddr;
- nic->irqno = pci->irq;
-}
-
int dummy_connect ( struct nic *nic __unused ) {
return 1;
}
@@ -131,5 +127,3 @@ int dummy_connect ( struct nic *nic __unused ) {
void dummy_irq ( struct nic *nic __unused, irq_action_t irq_action __unused ) {
return;
}
-
-REQUIRE_OBJECT ( pci );