Correct setting TX random backoff register. This register is
implemented as a 10 bits linear feedback shift register so only lower 10 bits are valid. Because this register is used to initialize random backoff interval register only when resolved duplex is half-duplex, it wouldn't have caused issues in these days. Submitted by: Masanobu SAITOH <msaitoh@NetBSD.org>
This commit is contained in:
parent
b9d2edd7c8
commit
0a2cc82713
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=251482
@ -2280,9 +2280,9 @@ bge_blockinit(struct bge_softc *sc)
|
|||||||
|
|
||||||
/* Set random backoff seed for TX */
|
/* Set random backoff seed for TX */
|
||||||
CSR_WRITE_4(sc, BGE_TX_RANDOM_BACKOFF,
|
CSR_WRITE_4(sc, BGE_TX_RANDOM_BACKOFF,
|
||||||
IF_LLADDR(sc->bge_ifp)[0] + IF_LLADDR(sc->bge_ifp)[1] +
|
(IF_LLADDR(sc->bge_ifp)[0] + IF_LLADDR(sc->bge_ifp)[1] +
|
||||||
IF_LLADDR(sc->bge_ifp)[2] + IF_LLADDR(sc->bge_ifp)[3] +
|
IF_LLADDR(sc->bge_ifp)[2] + IF_LLADDR(sc->bge_ifp)[3] +
|
||||||
IF_LLADDR(sc->bge_ifp)[4] + IF_LLADDR(sc->bge_ifp)[5] +
|
IF_LLADDR(sc->bge_ifp)[4] + IF_LLADDR(sc->bge_ifp)[5]) &
|
||||||
BGE_TX_BACKOFF_SEED_MASK);
|
BGE_TX_BACKOFF_SEED_MASK);
|
||||||
|
|
||||||
/* Set inter-packet gap */
|
/* Set inter-packet gap */
|
||||||
|
@ -797,7 +797,7 @@
|
|||||||
#define BGE_LEDCTL_BLINKPERIOD_OVERRIDE 0x80000000
|
#define BGE_LEDCTL_BLINKPERIOD_OVERRIDE 0x80000000
|
||||||
|
|
||||||
/* TX backoff seed register */
|
/* TX backoff seed register */
|
||||||
#define BGE_TX_BACKOFF_SEED_MASK 0x3F
|
#define BGE_TX_BACKOFF_SEED_MASK 0x3FF
|
||||||
|
|
||||||
/* Autopoll status register */
|
/* Autopoll status register */
|
||||||
#define BGE_AUTOPOLLSTS_ERROR 0x00000001
|
#define BGE_AUTOPOLLSTS_ERROR 0x00000001
|
||||||
|
Loading…
Reference in New Issue
Block a user