Move device specific flag configuration to attach routine.

The softc obtained in device probe wouldn't be the same one used in
device attach. Drivers should not assume any values stored in softc
structure in probe routine will be available for its attach routine.
This commit is contained in:
Pyun YongHyeon 2010-02-09 19:12:06 +00:00
parent 14a3afd9ab
commit 4150ce6f17

View File

@ -1993,10 +1993,6 @@ bge_probe(device_t dev)
snprintf(buf, 96, "%s, %sASIC rev. %#08x", model, snprintf(buf, 96, "%s, %sASIC rev. %#08x", model,
br != NULL ? "" : "unknown ", id); br != NULL ? "" : "unknown ", id);
device_set_desc_copy(dev, buf); device_set_desc_copy(dev, buf);
if (pci_get_subvendor(dev) == DELL_VENDORID)
sc->bge_flags |= BGE_FLAG_NO_3LED;
if (did == BCOM_DEVICEID_BCM5755M)
sc->bge_flags |= BGE_FLAG_ADJUST_TRIM;
return (0); return (0);
} }
t++; t++;
@ -2607,6 +2603,10 @@ bge_attach(device_t dev)
sc->bge_flags |= BGE_FLAG_ADC_BUG; sc->bge_flags |= BGE_FLAG_ADC_BUG;
if (sc->bge_chipid == BGE_CHIPID_BCM5704_A0) if (sc->bge_chipid == BGE_CHIPID_BCM5704_A0)
sc->bge_flags |= BGE_FLAG_5704_A0_BUG; sc->bge_flags |= BGE_FLAG_5704_A0_BUG;
if (pci_get_subvendor(dev) == DELL_VENDORID)
sc->bge_flags |= BGE_FLAG_NO_3LED;
if (pci_get_device(dev) == BCOM_DEVICEID_BCM5755M)
sc->bge_flags |= BGE_FLAG_ADJUST_TRIM;
if (BGE_IS_5705_PLUS(sc) && if (BGE_IS_5705_PLUS(sc) &&
!(sc->bge_flags & BGE_FLAG_ADJUST_TRIM)) { !(sc->bge_flags & BGE_FLAG_ADJUST_TRIM)) {
if (sc->bge_asicrev == BGE_ASICREV_BCM5755 || if (sc->bge_asicrev == BGE_ASICREV_BCM5755 ||