diff options
author | Michael Brown <mcb30@ipxe.org> | 2021-09-08 14:23:21 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2021-09-09 12:52:12 +0100 |
commit | 91e147213c58c4c841416830122a0e44d69f69ad (patch) | |
tree | 2511b81335a9877577ceca48892b399a86704a99 | |
parent | 0cc4c42f0af716bc5a363ad699160926e91a4d35 (diff) | |
download | ipxe-91e147213c58c4c841416830122a0e44d69f69ad.tar.gz |
[ecm] Expose USB vendor/device information to ecm_fetch_mac()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/drivers/net/ecm.c | 11 | ||||
-rw-r--r-- | src/drivers/net/ecm.h | 2 | ||||
-rw-r--r-- | src/drivers/net/ncm.c | 2 |
3 files changed, 8 insertions, 7 deletions
diff --git a/src/drivers/net/ecm.c b/src/drivers/net/ecm.c index 847a45b85..f531b04f8 100644 --- a/src/drivers/net/ecm.c +++ b/src/drivers/net/ecm.c @@ -81,13 +81,14 @@ ecm_ethernet_descriptor ( struct usb_configuration_descriptor *config, /** * Get hardware MAC address * - * @v usb USB device + * @v func USB function * @v desc Ethernet functional descriptor * @v hw_addr Hardware address to fill in * @ret rc Return status code */ -int ecm_fetch_mac ( struct usb_device *usb, +int ecm_fetch_mac ( struct usb_function *func, struct ecm_ethernet_descriptor *desc, uint8_t *hw_addr ) { + struct usb_device *usb = func->usb; char buf[ base16_encoded_len ( ETH_ALEN ) + 1 /* NUL */ ]; int len; int rc; @@ -103,7 +104,7 @@ int ecm_fetch_mac ( struct usb_device *usb, /* Sanity check */ if ( len != ( ( int ) ( sizeof ( buf ) - 1 /* NUL */ ) ) ) { DBGC ( usb, "USB %s has invalid ECM MAC \"%s\"\n", - usb->name, buf ); + func->name, buf ); return -EINVAL; } @@ -112,7 +113,7 @@ int ecm_fetch_mac ( struct usb_device *usb, if ( len < 0 ) { rc = len; DBGC ( usb, "USB %s could not decode ECM MAC \"%s\": %s\n", - usb->name, buf, strerror ( rc ) ); + func->name, buf, strerror ( rc ) ); return rc; } @@ -464,7 +465,7 @@ static int ecm_probe ( struct usb_function *func, } /* Fetch MAC address */ - if ( ( rc = ecm_fetch_mac ( usb, ethernet, netdev->hw_addr ) ) != 0 ) { + if ( ( rc = ecm_fetch_mac ( func, ethernet, netdev->hw_addr ) ) != 0 ) { DBGC ( ecm, "ECM %p could not fetch MAC address: %s\n", ecm, strerror ( rc ) ); goto err_fetch_mac; diff --git a/src/drivers/net/ecm.h b/src/drivers/net/ecm.h index 83d324bdc..0ad3ddb95 100644 --- a/src/drivers/net/ecm.h +++ b/src/drivers/net/ecm.h @@ -86,7 +86,7 @@ struct ecm_device { extern struct ecm_ethernet_descriptor * ecm_ethernet_descriptor ( struct usb_configuration_descriptor *config, struct usb_interface_descriptor *interface ); -extern int ecm_fetch_mac ( struct usb_device *usb, +extern int ecm_fetch_mac ( struct usb_function *func, struct ecm_ethernet_descriptor *desc, uint8_t *hw_addr ); diff --git a/src/drivers/net/ncm.c b/src/drivers/net/ncm.c index cc07a4388..1e8088d76 100644 --- a/src/drivers/net/ncm.c +++ b/src/drivers/net/ncm.c @@ -598,7 +598,7 @@ static int ncm_probe ( struct usb_function *func, } /* Fetch MAC address */ - if ( ( rc = ecm_fetch_mac ( usb, ethernet, netdev->hw_addr ) ) != 0 ) { + if ( ( rc = ecm_fetch_mac ( func, ethernet, netdev->hw_addr ) ) != 0 ) { DBGC ( ncm, "NCM %p could not fetch MAC address: %s\n", ncm, strerror ( rc ) ); goto err_fetch_mac; |