diff options
author | dmlb <dmlb@FreeBSD.org> | 2004-05-23 08:35:07 +0000 |
---|---|---|
committer | dmlb <dmlb@FreeBSD.org> | 2004-05-23 08:35:07 +0000 |
commit | 267a015bdcc32708e6de16086c6b70afabab6c6d (patch) | |
tree | c69ec1510b56e3bc1162fc5959cad87362d33a65 /sys/dev/bfe | |
parent | 77afef34dee6d1317151f83a1afe75d20a7f9d2e (diff) | |
download | FreeBSD-src-267a015bdcc32708e6de16086c6b70afabab6c6d.zip FreeBSD-src-267a015bdcc32708e6de16086c6b70afabab6c6d.tar.gz |
Apply fix for long timeouts on driver initialisation.
PR: 64656
Submitted by: Jianqin Qu <jqu@its.brooklyn.cuny.edu>
Reviewed by: dmlb
Diffstat (limited to 'sys/dev/bfe')
-rw-r--r-- | sys/dev/bfe/if_bfe.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/bfe/if_bfe.c b/sys/dev/bfe/if_bfe.c index 42491ea..764480c 100644 --- a/sys/dev/bfe/if_bfe.c +++ b/sys/dev/bfe/if_bfe.c @@ -758,7 +758,12 @@ bfe_chip_reset(struct bfe_softc *sc) DELAY(100); } - BFE_OR(sc, BFE_MAC_CTRL, BFE_CTRL_CRC32_ENAB); + /* Enable CRC32 generation and set proper LED modes */ + BFE_OR(sc, BFE_MAC_CTRL, BFE_CTRL_CRC32_ENAB | BFE_CTRL_LED); + + /* Reset or clear powerdown control bit */ + BFE_AND(sc, BFE_MAC_CTRL, ~BFE_CTRL_PDOWN); + CSR_WRITE_4(sc, BFE_RCV_LAZY, ((1 << BFE_LAZY_FC_SHIFT) & BFE_LAZY_FC_MASK)); @@ -860,7 +865,7 @@ bfe_cam_write(struct bfe_softc *sc, u_char *data, int index) (((u_int32_t) data[1]))); CSR_WRITE_4(sc, BFE_CAM_DATA_HI, val); CSR_WRITE_4(sc, BFE_CAM_CTRL, (BFE_CAM_WRITE | - (index << BFE_CAM_INDEX_SHIFT))); + ((u_int32_t) index << BFE_CAM_INDEX_SHIFT))); bfe_wait_bit(sc, BFE_CAM_CTRL, BFE_CAM_BUSY, 10000, 1); } |