summaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
authorMichael Brown2008-03-21 23:15:31 +0100
committerMichael Brown2008-03-21 23:15:31 +0100
commit8afb36c3bc08ff0c9bdf0a8496cb08a8bfe287f3 (patch)
tree4369c087ca4c75593fe6d287fca658516d20a9d8 /src/drivers
parent[DHCP] Kill off some no-longer-used DHCP functions (diff)
downloadipxe-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.c6
-rw-r--r--src/drivers/net/rtl8139.c32
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 );
}