svn commit: r334973 - head/sys/dev/usb/net
Ed Maste
emaste at FreeBSD.org
Mon Jun 11 19:34:48 UTC 2018
Author: emaste
Date: Mon Jun 11 19:34:47 2018
New Revision: 334973
URL: https://svnweb.freebsd.org/changeset/base/334973
Log:
if_muge: retire lan78xx_eeprom_read
lan78xx_eeprom_read just checked for EEPROM presence then called
lan78xx_eeprom_read_raw if present, and had only one caller. Introduce
lan78xx_eeprom_present to check for EEPROM presence, and use it in the
one place it is needed.
This is used by r334964, which was accidentally committed out-of-order
from my work tree.
Reported by: markj
Sponsored by: The FreeBSD Foundation
Modified:
head/sys/dev/usb/net/if_muge.c
Modified: head/sys/dev/usb/net/if_muge.c
==============================================================================
--- head/sys/dev/usb/net/if_muge.c Mon Jun 11 19:32:49 2018 (r334972)
+++ head/sys/dev/usb/net/if_muge.c Mon Jun 11 19:34:47 2018 (r334973)
@@ -445,32 +445,14 @@ done:
return (err);
}
-/**
- * lan78xx_eeprom_read - Read EEPROM and confirm it is programmed
- * @sc: soft context
- * @off: the eeprom address offset
- * @buf: stores the bytes
- * @buflen: the number of bytes to read
- *
- * RETURNS:
- * 0 on success, or a USB_ERR_?? error code on failure.
- */
-static int
-lan78xx_eeprom_read(struct muge_softc *sc, uint16_t off, uint8_t *buf,
- uint16_t buflen)
+static bool
+lan78xx_eeprom_present(struct muge_softc *sc)
{
- uint8_t sig;
int ret;
+ uint8_t sig;
ret = lan78xx_eeprom_read_raw(sc, ETH_E2P_INDICATOR_OFFSET, &sig, 1);
- if ((ret == 0) && (sig == ETH_E2P_INDICATOR)) {
- ret = lan78xx_eeprom_read_raw(sc, off, buf, buflen);
- muge_dbg_printf(sc, "EEPROM present\n");
- } else {
- ret = -EINVAL;
- muge_dbg_printf(sc, "EEPROM not present\n");
- }
- return (ret);
+ return (ret == 0 && sig == ETH_E2P_INDICATOR);
}
/**
@@ -1487,7 +1469,8 @@ muge_attach_post(struct usb_ether *ue)
/* If RX_ADDRx did not provide a valid MAC address, try EEPROM. */
if (!ETHER_IS_VALID(sc->sc_ue.ue_eaddr)) {
- if ((lan78xx_eeprom_read(sc, ETH_E2P_MAC_OFFSET,
+ if ((lan78xx_eeprom_present(sc) &&
+ lan78xx_eeprom_read_raw(sc, ETH_E2P_MAC_OFFSET,
sc->sc_ue.ue_eaddr, ETHER_ADDR_LEN) == 0) ||
(lan78xx_otp_read(sc, OTP_MAC_OFFSET,
sc->sc_ue.ue_eaddr, ETHER_ADDR_LEN) == 0)) {
More information about the svn-src-head
mailing list