]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[ecm] Expose USB vendor/device information to ecm_fetch_mac()
authorMichael Brown <mcb30@ipxe.org>
Wed, 8 Sep 2021 13:23:21 +0000 (14:23 +0100)
committerMichael Brown <mcb30@ipxe.org>
Thu, 9 Sep 2021 11:52:12 +0000 (12:52 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/ecm.c
src/drivers/net/ecm.h
src/drivers/net/ncm.c

index 847a45b85c6f47f32b6c2166797b507dbc351966..f531b04f8b7f9f31640d8f0081e45492232549c3 100644 (file)
@@ -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;
index 83d324bdc6fd355ce1aad7bae1b05b8d996ede3a..0ad3ddb953143504c82276bf3cd9d640c106e5bb 100644 (file)
@@ -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 );
 
index cc07a43882d100f65db868f444fe19832056b9de..1e8088d76bfa1ab6ef35aff69ea5fe98d975e246 100644 (file)
@@ -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;