Commit 24767ab1 authored by Dhananjay Phadke's avatar Dhananjay Phadke Committed by David S. Miller

netxen: Add default and limit macros for ring sizes.

Signed-off-by: default avatarDhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1bcfd790
...@@ -200,13 +200,20 @@ ...@@ -200,13 +200,20 @@
#define RCV_RING_JUMBO 1 #define RCV_RING_JUMBO 1
#define RCV_RING_LRO 2 #define RCV_RING_LRO 2
#define MAX_CMD_DESCRIPTORS 4096 #define MIN_CMD_DESCRIPTORS 64
#define MAX_RCV_DESCRIPTORS 16384 #define MIN_RCV_DESCRIPTORS 64
#define MAX_CMD_DESCRIPTORS_HOST 1024 #define MIN_JUMBO_DESCRIPTORS 32
#define MAX_RCV_DESCRIPTORS_1G 2048
#define MAX_RCV_DESCRIPTORS_10G 4096 #define MAX_CMD_DESCRIPTORS 1024
#define MAX_JUMBO_RCV_DESCRIPTORS 1024 #define MAX_RCV_DESCRIPTORS_1G 4096
#define MAX_RCV_DESCRIPTORS_10G 8192
#define MAX_JUMBO_RCV_DESCRIPTORS_1G 512
#define MAX_JUMBO_RCV_DESCRIPTORS_10G 1024
#define MAX_LRO_RCV_DESCRIPTORS 8 #define MAX_LRO_RCV_DESCRIPTORS 8
#define DEFAULT_RCV_DESCRIPTORS_1G 2048
#define DEFAULT_RCV_DESCRIPTORS_10G 4096
#define NETXEN_CTX_SIGNATURE 0xdee0 #define NETXEN_CTX_SIGNATURE 0xdee0
#define NETXEN_CTX_SIGNATURE_V2 0x0002dee0 #define NETXEN_CTX_SIGNATURE_V2 0x0002dee0
#define NETXEN_CTX_RESET 0xbad0 #define NETXEN_CTX_RESET 0xbad0
......
...@@ -494,20 +494,21 @@ netxen_nic_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring) ...@@ -494,20 +494,21 @@ netxen_nic_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring)
{ {
struct netxen_adapter *adapter = netdev_priv(dev); struct netxen_adapter *adapter = netdev_priv(dev);
ring->rx_pending = 0; ring->rx_pending = adapter->num_rxd;
ring->rx_jumbo_pending = 0; ring->rx_jumbo_pending = adapter->num_jumbo_rxd;
ring->rx_pending += adapter->recv_ctx. ring->rx_jumbo_pending += adapter->num_lro_rxd;
rds_rings[RCV_RING_NORMAL].num_desc;
ring->rx_jumbo_pending += adapter->recv_ctx.
rds_rings[RCV_RING_JUMBO].num_desc;
ring->tx_pending = adapter->num_txd; ring->tx_pending = adapter->num_txd;
if (adapter->ahw.port_type == NETXEN_NIC_GBE) if (adapter->ahw.port_type == NETXEN_NIC_GBE) {
ring->rx_max_pending = MAX_RCV_DESCRIPTORS_1G; ring->rx_max_pending = MAX_RCV_DESCRIPTORS_1G;
else ring->rx_jumbo_max_pending = MAX_JUMBO_RCV_DESCRIPTORS_1G;
} else {
ring->rx_max_pending = MAX_RCV_DESCRIPTORS_10G; ring->rx_max_pending = MAX_RCV_DESCRIPTORS_10G;
ring->tx_max_pending = MAX_CMD_DESCRIPTORS_HOST; ring->rx_jumbo_max_pending = MAX_JUMBO_RCV_DESCRIPTORS_10G;
ring->rx_jumbo_max_pending = MAX_JUMBO_RCV_DESCRIPTORS; }
ring->tx_max_pending = MAX_CMD_DESCRIPTORS;
ring->rx_mini_max_pending = 0; ring->rx_mini_max_pending = 0;
ring->rx_mini_pending = 0; ring->rx_mini_pending = 0;
} }
......
...@@ -283,12 +283,16 @@ nx_update_dma_mask(struct netxen_adapter *adapter) ...@@ -283,12 +283,16 @@ nx_update_dma_mask(struct netxen_adapter *adapter)
return 0; return 0;
} }
static void netxen_check_options(struct netxen_adapter *adapter) static void
netxen_check_options(struct netxen_adapter *adapter)
{ {
if (adapter->ahw.port_type == NETXEN_NIC_XGBE) if (adapter->ahw.port_type == NETXEN_NIC_XGBE) {
adapter->num_rxd = MAX_RCV_DESCRIPTORS_10G; adapter->num_rxd = DEFAULT_RCV_DESCRIPTORS_10G;
else if (adapter->ahw.port_type == NETXEN_NIC_GBE) adapter->num_jumbo_rxd = MAX_JUMBO_RCV_DESCRIPTORS_10G;
adapter->num_rxd = MAX_RCV_DESCRIPTORS_1G; } else if (adapter->ahw.port_type == NETXEN_NIC_GBE) {
adapter->num_rxd = DEFAULT_RCV_DESCRIPTORS_1G;
adapter->num_jumbo_rxd = MAX_JUMBO_RCV_DESCRIPTORS_1G;
}
adapter->msix_supported = 0; adapter->msix_supported = 0;
if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
...@@ -306,11 +310,15 @@ static void netxen_check_options(struct netxen_adapter *adapter) ...@@ -306,11 +310,15 @@ static void netxen_check_options(struct netxen_adapter *adapter)
} }
} }
adapter->num_txd = MAX_CMD_DESCRIPTORS_HOST; adapter->num_txd = MAX_CMD_DESCRIPTORS;
adapter->num_jumbo_rxd = MAX_JUMBO_RCV_DESCRIPTORS;
adapter->num_lro_rxd = MAX_LRO_RCV_DESCRIPTORS;
return; if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) {
adapter->num_lro_rxd = MAX_LRO_RCV_DESCRIPTORS;
adapter->max_rds_rings = 3;
} else {
adapter->num_lro_rxd = 0;
adapter->max_rds_rings = 2;
}
} }
static int static int
...@@ -908,11 +916,6 @@ netxen_nic_attach(struct netxen_adapter *adapter) ...@@ -908,11 +916,6 @@ netxen_nic_attach(struct netxen_adapter *adapter)
return -EIO; return -EIO;
} }
if (adapter->fw_major < 4)
adapter->max_rds_rings = 3;
else
adapter->max_rds_rings = 2;
err = netxen_alloc_sw_resources(adapter); err = netxen_alloc_sw_resources(adapter);
if (err) { if (err) {
printk(KERN_ERR "%s: Error in setting sw resources\n", printk(KERN_ERR "%s: Error in setting sw resources\n",
...@@ -1923,8 +1926,6 @@ static struct pci_driver netxen_driver = { ...@@ -1923,8 +1926,6 @@ static struct pci_driver netxen_driver = {
#endif #endif
}; };
/* Driver Registration on NetXen card */
static int __init netxen_init_module(void) static int __init netxen_init_module(void)
{ {
printk(KERN_INFO "%s\n", netxen_nic_driver_string); printk(KERN_INFO "%s\n", netxen_nic_driver_string);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment