summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2008-10-19 06:55:08 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2008-10-19 06:55:08 +0000
commitf561942c43e402f3d4bd3c8bcd995461017d0892 (patch)
tree78a8a4b31f3597a9190518a90b0196a2d0c0f251
parent557d88042b61a0d0df73957a197b31ea1ad02d2f (diff)
Notes
-rw-r--r--sys/dev/jme/if_jme.c14
-rw-r--r--sys/dev/jme/if_jmereg.h2
2 files changed, 9 insertions, 7 deletions
diff --git a/sys/dev/jme/if_jme.c b/sys/dev/jme/if_jme.c
index 7a62c9059048..020e17bbf382 100644
--- a/sys/dev/jme/if_jme.c
+++ b/sys/dev/jme/if_jme.c
@@ -439,11 +439,8 @@ jme_eeprom_macaddr(struct jme_softc *sc)
do {
if (jme_eeprom_read_byte(sc, offset, &fup) != 0)
break;
- /* Check for the end of EEPROM descriptor. */
- if ((fup & JME_EEPROM_DESC_END) == JME_EEPROM_DESC_END)
- break;
- if ((uint8_t)JME_EEPROM_MKDESC(JME_EEPROM_FUNC0,
- JME_EEPROM_PAGE_BAR1) == fup) {
+ if (JME_EEPROM_MKDESC(JME_EEPROM_FUNC0, JME_EEPROM_PAGE_BAR1) ==
+ (fup & (JME_EEPROM_FUNC_MASK | JME_EEPROM_PAGE_MASK))) {
if (jme_eeprom_read_byte(sc, offset + 1, &reg) != 0)
break;
if (reg >= JME_PAR0 &&
@@ -455,6 +452,9 @@ jme_eeprom_macaddr(struct jme_softc *sc)
match++;
}
}
+ /* Check for the end of EEPROM descriptor. */
+ if ((fup & JME_EEPROM_DESC_END) == JME_EEPROM_DESC_END)
+ break;
/* Try next eeprom descriptor. */
offset += JME_EEPROM_DESC_BYTES;
} while (match != ETHER_ADDR_LEN && offset < JME_EEPROM_END);
@@ -648,8 +648,8 @@ jme_attach(device_t dev)
goto fail;
}
- sc->jme_rev = pci_get_revid(dev);
- if (sc->jme_rev == DEVICEID_JMC260) {
+ sc->jme_rev = pci_get_device(dev);
+ if ((sc->jme_rev & DEVICEID_JMC2XX_MASK) == DEVICEID_JMC260) {
sc->jme_flags |= JME_FLAG_FASTETH;
sc->jme_flags |= JME_FLAG_NOJUMBO;
}
diff --git a/sys/dev/jme/if_jmereg.h b/sys/dev/jme/if_jmereg.h
index 9808fa5e9f80..d89b2f58fafc 100644
--- a/sys/dev/jme/if_jmereg.h
+++ b/sys/dev/jme/if_jmereg.h
@@ -48,6 +48,8 @@
#define DEVICEID_JMC260 0x0260
#define DEVICEREVID_JMC260_A0 0x00
+#define DEVICEID_JMC2XX_MASK 0x0FF0
+
/* JMC250 PCI configuration register. */
#define JME_PCI_BAR0 0x10 /* 16KB memory window. */