diff options
author | marius <marius@FreeBSD.org> | 2011-06-28 16:16:43 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2011-06-28 16:16:43 +0000 |
commit | 57a4978d94386cf63e9d3bb1f17241b75af936c7 (patch) | |
tree | 1998a7c78aa0ecdc3f40c4c9fbb0bb5c8b47dd3c /sys/dev/gem/if_gemvar.h | |
parent | 0b9b3ff55fe43a1809945421c3b1367da1896f0e (diff) | |
download | FreeBSD-src-57a4978d94386cf63e9d3bb1f17241b75af936c7.zip FreeBSD-src-57a4978d94386cf63e9d3bb1f17241b75af936c7.tar.gz |
- In gem_reset_rx() also reset the RX MAC which is necessary in order to
get it out of a stuck condition that can be caused by GEM_MAC_RX_OVERFLOW.
- In gem_reset_rxdma() call gem_setladrf() in order to reprogram the RX
filter and restore the previous content of GEM_MAC_RX_CONFIG. While at it
consistently use the newly introduced sc_mac_rxcfg throughout the driver
instead of reading the its old content.
- Increment if_iqdrops instead of if_ierrors in case of RX buffer allocation
failure.
- According to the GEM datasheet the RX MAC should also be disabled in
gem_setladrf() before changing its configuration.
- Add error messages to gem_disable_{r,t}x() and take advantage of these
throughout the driver instead of duplicating their functionality all over
the place.
In joint forces with: yongari
Diffstat (limited to 'sys/dev/gem/if_gemvar.h')
-rw-r--r-- | sys/dev/gem/if_gemvar.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/gem/if_gemvar.h b/sys/dev/gem/if_gemvar.h index 59cb582..d89a322 100644 --- a/sys/dev/gem/if_gemvar.h +++ b/sys/dev/gem/if_gemvar.h @@ -173,6 +173,8 @@ struct gem_softc { u_int sc_rxptr; /* next ready RX descriptor/state */ u_int sc_rxfifosize; /* RX FIFO size (bytes) */ + uint32_t sc_mac_rxcfg; /* RX MAC conf. % GEM_MAC_RX_ENABLE */ + int sc_ifflags; u_long sc_csum_features; }; |