diff options
| author | Michael Brown | 2008-03-21 23:15:31 +0100 |
|---|---|---|
| committer | Michael Brown | 2008-03-21 23:15:31 +0100 |
| commit | 8afb36c3bc08ff0c9bdf0a8496cb08a8bfe287f3 (patch) | |
| tree | 4369c087ca4c75593fe6d287fca658516d20a9d8 /src/drivers | |
| parent | [DHCP] Kill off some no-longer-used DHCP functions (diff) | |
| download | ipxe-8afb36c3bc08ff0c9bdf0a8496cb08a8bfe287f3.tar.gz ipxe-8afb36c3bc08ff0c9bdf0a8496cb08a8bfe287f3.tar.xz ipxe-8afb36c3bc08ff0c9bdf0a8496cb08a8bfe287f3.zip | |
[Settings] Migrate DHCP and NVO code to the new settings API (untested)
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/net/etherfabric.c | 6 | ||||
| -rw-r--r-- | src/drivers/net/rtl8139.c | 32 |
2 files changed, 21 insertions, 17 deletions
diff --git a/src/drivers/net/etherfabric.c b/src/drivers/net/etherfabric.c index 90cc73f4b..8a6b1a17d 100644 --- a/src/drivers/net/etherfabric.c +++ b/src/drivers/net/etherfabric.c @@ -3008,9 +3008,9 @@ static int falcon_init_nic ( struct efab_nic *efab ) { /* Register non-volatile storage */ if ( efab->has_eeprom ) { - efab->nvo.nvs = &efab->falcon_eeprom.nvs; - efab->nvo.fragments = falcon_eeprom_fragments; - if ( nvo_register ( &efab->nvo ) != 0 ) + nvo_init ( &efab->nvo, &efab->falcon_eeprom.nvs, + falcon_eeprom_fragments, NULL /* hack */ ); + if ( register_nvo ( &efab->nvo, NULL /* hack */ ) != 0 ) return 0; } diff --git a/src/drivers/net/rtl8139.c b/src/drivers/net/rtl8139.c index 83fac554a..c432884cd 100644 --- a/src/drivers/net/rtl8139.c +++ b/src/drivers/net/rtl8139.c @@ -261,9 +261,10 @@ static struct nvo_fragment rtl_nvo_fragments[] = { /** * Set up for EEPROM access * - * @v rtl RTL8139 NIC + * @v netdev Net device */ -static void rtl_init_eeprom ( struct rtl8139_nic *rtl ) { +static void rtl_init_eeprom ( struct net_device *netdev ) { + struct rtl8139_nic *rtl = netdev->priv; int ee9356; int vpd; @@ -288,19 +289,20 @@ static void rtl_init_eeprom ( struct rtl8139_nic *rtl ) { if ( vpd ) { DBG ( "EEPROM in use for VPD; cannot use for options\n" ); } else { - rtl->nvo.nvs = &rtl->eeprom.nvs; - rtl->nvo.fragments = rtl_nvo_fragments; + nvo_init ( &rtl->nvo, &rtl->eeprom.nvs, rtl_nvo_fragments, + &netdev->refcnt ); } } /** * Reset NIC * - * @v rtl RTL8139 NIC + * @v netdev Net device * * Issues a hardware reset and waits for the reset to complete. */ -static void rtl_reset ( struct rtl8139_nic *rtl ) { +static void rtl_reset ( struct net_device *netdev ) { + struct rtl8139_nic *rtl = netdev->priv; /* Reset chip */ outb ( CmdReset, rtl->ioaddr + ChipCmd ); @@ -352,7 +354,7 @@ static void rtl_close ( struct net_device *netdev ) { struct rtl8139_nic *rtl = netdev->priv; /* Reset the hardware to disable everything in one go */ - rtl_reset ( rtl ); + rtl_reset ( netdev ); /* Free RX ring */ free ( rtl->rx.ring ); @@ -366,7 +368,8 @@ static void rtl_close ( struct net_device *netdev ) { * @v iobuf I/O buffer * @ret rc Return status code */ -static int rtl_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) { +static int rtl_transmit ( struct net_device *netdev, + struct io_buffer *iobuf ) { struct rtl8139_nic *rtl = netdev->priv; /* Check for space in TX ring */ @@ -512,8 +515,8 @@ static int rtl_probe ( struct pci_device *pci, adjust_pci_device ( pci ); /* Reset the NIC, set up EEPROM access and read MAC address */ - rtl_reset ( rtl ); - rtl_init_eeprom ( rtl ); + rtl_reset ( netdev ); + rtl_init_eeprom ( netdev ); nvs_read ( &rtl->eeprom.nvs, EE_MAC, netdev->ll_addr, ETH_ALEN ); /* Register network device */ @@ -522,7 +525,8 @@ static int rtl_probe ( struct pci_device *pci, /* Register non-volatile storage */ if ( rtl->nvo.nvs ) { - if ( ( rc = nvo_register ( &rtl->nvo ) ) != 0 ) + if ( ( rc = register_nvo ( &rtl->nvo, + netdev_settings ( netdev ) ) ) != 0) goto err_register_nvo; } @@ -531,7 +535,7 @@ static int rtl_probe ( struct pci_device *pci, err_register_nvo: unregister_netdev ( netdev ); err_register_netdev: - rtl_reset ( rtl ); + rtl_reset ( netdev ); netdev_nullify ( netdev ); netdev_put ( netdev ); return rc; @@ -547,9 +551,9 @@ static void rtl_remove ( struct pci_device *pci ) { struct rtl8139_nic *rtl = netdev->priv; if ( rtl->nvo.nvs ) - nvo_unregister ( &rtl->nvo ); + unregister_nvo ( &rtl->nvo ); unregister_netdev ( netdev ); - rtl_reset ( rtl ); + rtl_reset ( netdev ); netdev_nullify ( netdev ); netdev_put ( netdev ); } |
