summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-11-10 11:44:37 +0000
committerglebius <glebius@FreeBSD.org>2005-11-10 11:44:37 +0000
commit91564dc239bc801ca2a70a875784e5fcf61bf034 (patch)
treec13ef4103fa8065f4b010ee564a17c4187214ef7
parentdcccc2e254b65c0d294c8ab60f302ee656ad0e55 (diff)
downloadFreeBSD-src-91564dc239bc801ca2a70a875784e5fcf61bf034.zip
FreeBSD-src-91564dc239bc801ca2a70a875784e5fcf61bf034.tar.gz
Give a try to autoconfiguring the number of transmit and receive
descriptors depending on chip revision.
-rw-r--r--sys/dev/em/if_em.c9
-rw-r--r--sys/dev/em/if_em.h12
2 files changed, 14 insertions, 7 deletions
diff --git a/sys/dev/em/if_em.c b/sys/dev/em/if_em.c
index 3ff8b83..a995213 100644
--- a/sys/dev/em/if_em.c
+++ b/sys/dev/em/if_em.c
@@ -359,8 +359,13 @@ em_attach(device_t dev)
}
/* Parameters (to be read from user) */
- adapter->num_tx_desc = EM_MAX_TXD;
- adapter->num_rx_desc = EM_MAX_RXD;
+ if (adapter->hw.mac_type >= em_82544) {
+ adapter->num_tx_desc = EM_TXD_82544;
+ adapter->num_rx_desc = EM_RXD_82544;
+ } else {
+ adapter->num_tx_desc = EM_TXD;
+ adapter->num_rx_desc = EM_RXD;
+ }
adapter->hw.autoneg = DO_AUTO_NEG;
adapter->hw.wait_autoneg_complete = WAIT_FOR_AUTO_NEG_DEFAULT;
adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT;
diff --git a/sys/dev/em/if_em.h b/sys/dev/em/if_em.h
index 3c38d84..a418191 100644
--- a/sys/dev/em/if_em.h
+++ b/sys/dev/em/if_em.h
@@ -77,7 +77,7 @@ POSSIBILITY OF SUCH DAMAGE.
/* Tunables */
/*
- * EM_MAX_TXD: Maximum number of Transmit Descriptors
+ * EM_TXD: Maximum number of Transmit Descriptors
* Valid Range: 80-256 for 82542 and 82543-based adapters
* 80-4096 for others
* Default Value: 256
@@ -85,10 +85,11 @@ POSSIBILITY OF SUCH DAMAGE.
* Increasing this value allows the driver to queue more transmits. Each
* descriptor is 16 bytes.
*/
-#define EM_MAX_TXD 256
+#define EM_TXD 256
+#define EM_TXD_82544 4096
/*
- * EM_MAX_RXD - Maximum number of receive Descriptors
+ * EM_RXD - Maximum number of receive Descriptors
* Valid Range: 80-256 for 82542 and 82543-based adapters
* 80-4096 for others
* Default Value: 256
@@ -98,7 +99,8 @@ POSSIBILITY OF SUCH DAMAGE.
* descriptor. The maximum MTU size is 16110.
*
*/
-#define EM_MAX_RXD 256
+#define EM_RXD 256
+#define EM_RXD_82544 4096
/*
* EM_TIDV - Transmit Interrupt Delay Value
@@ -173,7 +175,7 @@ POSSIBILITY OF SUCH DAMAGE.
* This parameter controls when the driver calls the routine to reclaim
* transmit descriptors.
*/
-#define EM_TX_CLEANUP_THRESHOLD EM_MAX_TXD / 8
+#define EM_TX_CLEANUP_THRESHOLD (adapter->num_tx_desc / 8)
/*
* This parameter controls whether or not autonegotation is enabled.
OpenPOWER on IntegriCloud