diff options
author | Michael Brown | 2017-07-10 13:38:39 +0200 |
---|---|---|
committer | Michael Brown | 2017-07-10 13:41:23 +0200 |
commit | 74f934a14e8d0bead8086433596745e7c2b67990 (patch) | |
tree | 2ca329bea266f5aa5507ca1a80c5a90ee5d7a6a4 /src/drivers/net/smsc95xx.c | |
parent | [smscusb] Move non-inline register access functions to smscusb.c (diff) | |
download | ipxe-74f934a14e8d0bead8086433596745e7c2b67990.tar.gz ipxe-74f934a14e8d0bead8086433596745e7c2b67990.tar.xz ipxe-74f934a14e8d0bead8086433596745e7c2b67990.zip |
[smscusb] Allow for alternative PHY register layouts
The LAN78xx PHY interrupt source and mask registers do not match those
used by the SMSC75xx and SMSC95xx.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/smsc95xx.c')
-rw-r--r-- | src/drivers/net/smsc95xx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/drivers/net/smsc95xx.c b/src/drivers/net/smsc95xx.c index e56cf5b4..9b09657d 100644 --- a/src/drivers/net/smsc95xx.c +++ b/src/drivers/net/smsc95xx.c @@ -462,7 +462,9 @@ static int smsc95xx_open ( struct net_device *netdev ) { goto err_set_address; /* Enable PHY interrupts and update link status */ - if ( ( rc = smscusb_mii_open ( smscusb ) ) != 0 ) + if ( ( rc = smscusb_mii_open ( smscusb, SMSC95XX_MII_PHY_INTR_MASK, + ( SMSC95XX_PHY_INTR_ANEG_DONE | + SMSC95XX_PHY_INTR_LINK_DOWN ) ) ) != 0) goto err_mii_open; return 0; @@ -606,7 +608,8 @@ static int smsc95xx_probe ( struct usb_function *func, smscusb = netdev->priv; memset ( smscusb, 0, sizeof ( *smscusb ) ); smscusb_init ( smscusb, netdev, func, &smsc95xx_in_operations ); - smscusb_mii_init ( smscusb, SMSC95XX_MII_BASE ); + smscusb_mii_init ( smscusb, SMSC95XX_MII_BASE, + SMSC95XX_MII_PHY_INTR_SOURCE ); usb_refill_init ( &smscusb->usbnet.in, ( sizeof ( struct smsc95xx_tx_header ) - sizeof ( struct smsc95xx_rx_header ) ), |