diff options
Diffstat (limited to 'drivers/net/mlx4/mlx4_en.h')
-rw-r--r-- | drivers/net/mlx4/mlx4_en.h | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/drivers/net/mlx4/mlx4_en.h b/drivers/net/mlx4/mlx4_en.h index ef840abbcd39..d43a9e4c2aea 100644 --- a/drivers/net/mlx4/mlx4_en.h +++ b/drivers/net/mlx4/mlx4_en.h | |||
@@ -49,26 +49,42 @@ | |||
49 | #include "en_port.h" | 49 | #include "en_port.h" |
50 | 50 | ||
51 | #define DRV_NAME "mlx4_en" | 51 | #define DRV_NAME "mlx4_en" |
52 | #define DRV_VERSION "1.4.0" | 52 | #define DRV_VERSION "1.4.1.1" |
53 | #define DRV_RELDATE "Sep 2008" | 53 | #define DRV_RELDATE "June 2009" |
54 | 54 | ||
55 | 55 | ||
56 | #define MLX4_EN_MSG_LEVEL (NETIF_MSG_LINK | NETIF_MSG_IFDOWN) | 56 | #define MLX4_EN_MSG_LEVEL (NETIF_MSG_LINK | NETIF_MSG_IFDOWN) |
57 | 57 | ||
58 | #define mlx4_dbg(mlevel, priv, format, arg...) \ | 58 | #define en_print(level, priv, format, arg...) \ |
59 | if (NETIF_MSG_##mlevel & priv->msg_enable) \ | 59 | { \ |
60 | printk(KERN_DEBUG "%s %s: " format , DRV_NAME ,\ | 60 | if ((priv)->registered) \ |
61 | (dev_name(&priv->mdev->pdev->dev)) , ## arg) | 61 | printk(level "%s: %s: " format, DRV_NAME, \ |
62 | (priv->dev)->name, ## arg); \ | ||
63 | else \ | ||
64 | printk(level "%s: %s: Port %d: " format, \ | ||
65 | DRV_NAME, dev_name(&priv->mdev->pdev->dev), \ | ||
66 | (priv)->port, ## arg); \ | ||
67 | } | ||
68 | |||
69 | #define en_dbg(mlevel, priv, format, arg...) \ | ||
70 | { \ | ||
71 | if (NETIF_MSG_##mlevel & priv->msg_enable) \ | ||
72 | en_print(KERN_DEBUG, priv, format, ## arg) \ | ||
73 | } | ||
74 | #define en_warn(priv, format, arg...) \ | ||
75 | en_print(KERN_WARNING, priv, format, ## arg) | ||
76 | #define en_err(priv, format, arg...) \ | ||
77 | en_print(KERN_ERR, priv, format, ## arg) | ||
62 | 78 | ||
63 | #define mlx4_err(mdev, format, arg...) \ | 79 | #define mlx4_err(mdev, format, arg...) \ |
64 | printk(KERN_ERR "%s %s: " format , DRV_NAME ,\ | 80 | printk(KERN_ERR "%s %s: " format , DRV_NAME ,\ |
65 | (dev_name(&mdev->pdev->dev)) , ## arg) | 81 | dev_name(&mdev->pdev->dev) , ## arg) |
66 | #define mlx4_info(mdev, format, arg...) \ | 82 | #define mlx4_info(mdev, format, arg...) \ |
67 | printk(KERN_INFO "%s %s: " format , DRV_NAME ,\ | 83 | printk(KERN_INFO "%s %s: " format , DRV_NAME ,\ |
68 | (dev_name(&mdev->pdev->dev)) , ## arg) | 84 | dev_name(&mdev->pdev->dev) , ## arg) |
69 | #define mlx4_warn(mdev, format, arg...) \ | 85 | #define mlx4_warn(mdev, format, arg...) \ |
70 | printk(KERN_WARNING "%s %s: " format , DRV_NAME ,\ | 86 | printk(KERN_WARNING "%s %s: " format , DRV_NAME ,\ |
71 | (dev_name(&mdev->pdev->dev)) , ## arg) | 87 | dev_name(&mdev->pdev->dev) , ## arg) |
72 | 88 | ||
73 | /* | 89 | /* |
74 | * Device constants | 90 | * Device constants |
@@ -123,12 +139,14 @@ enum { | |||
123 | #define MLX4_EN_MIN_RX_SIZE (MLX4_EN_ALLOC_SIZE / SMP_CACHE_BYTES) | 139 | #define MLX4_EN_MIN_RX_SIZE (MLX4_EN_ALLOC_SIZE / SMP_CACHE_BYTES) |
124 | #define MLX4_EN_MIN_TX_SIZE (4096 / TXBB_SIZE) | 140 | #define MLX4_EN_MIN_TX_SIZE (4096 / TXBB_SIZE) |
125 | 141 | ||
126 | #define MLX4_EN_TX_RING_NUM 9 | 142 | #define MLX4_EN_SMALL_PKT_SIZE 64 |
127 | #define MLX4_EN_DEF_TX_RING_SIZE 1024 | 143 | #define MLX4_EN_NUM_TX_RINGS 8 |
144 | #define MLX4_EN_NUM_PPP_RINGS 8 | ||
145 | #define MLX4_EN_DEF_TX_RING_SIZE 512 | ||
128 | #define MLX4_EN_DEF_RX_RING_SIZE 1024 | 146 | #define MLX4_EN_DEF_RX_RING_SIZE 1024 |
129 | 147 | ||
130 | /* Target number of bytes to coalesce with interrupt moderation */ | 148 | /* Target number of packets to coalesce with interrupt moderation */ |
131 | #define MLX4_EN_RX_COAL_TARGET 0x20000 | 149 | #define MLX4_EN_RX_COAL_TARGET 44 |
132 | #define MLX4_EN_RX_COAL_TIME 0x10 | 150 | #define MLX4_EN_RX_COAL_TIME 0x10 |
133 | 151 | ||
134 | #define MLX4_EN_TX_COAL_PKTS 5 | 152 | #define MLX4_EN_TX_COAL_PKTS 5 |
@@ -462,7 +480,6 @@ struct mlx4_en_priv { | |||
462 | int base_qpn; | 480 | int base_qpn; |
463 | 481 | ||
464 | struct mlx4_en_rss_map rss_map; | 482 | struct mlx4_en_rss_map rss_map; |
465 | u16 tx_prio_map[8]; | ||
466 | u32 flags; | 483 | u32 flags; |
467 | #define MLX4_EN_FLAG_PROMISC 0x1 | 484 | #define MLX4_EN_FLAG_PROMISC 0x1 |
468 | u32 tx_ring_num; | 485 | u32 tx_ring_num; |
@@ -500,8 +517,6 @@ void mlx4_en_stop_port(struct net_device *dev); | |||
500 | void mlx4_en_free_resources(struct mlx4_en_priv *priv); | 517 | void mlx4_en_free_resources(struct mlx4_en_priv *priv); |
501 | int mlx4_en_alloc_resources(struct mlx4_en_priv *priv); | 518 | int mlx4_en_alloc_resources(struct mlx4_en_priv *priv); |
502 | 519 | ||
503 | int mlx4_en_get_profile(struct mlx4_en_dev *mdev); | ||
504 | |||
505 | int mlx4_en_create_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq, | 520 | int mlx4_en_create_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq, |
506 | int entries, int ring, enum cq_type mode); | 521 | int entries, int ring, enum cq_type mode); |
507 | void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq); | 522 | void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq); |
@@ -512,6 +527,7 @@ int mlx4_en_arm_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq); | |||
512 | 527 | ||
513 | void mlx4_en_poll_tx_cq(unsigned long data); | 528 | void mlx4_en_poll_tx_cq(unsigned long data); |
514 | void mlx4_en_tx_irq(struct mlx4_cq *mcq); | 529 | void mlx4_en_tx_irq(struct mlx4_cq *mcq); |
530 | u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb); | ||
515 | int mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev); | 531 | int mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev); |
516 | 532 | ||
517 | int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring *ring, | 533 | int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring *ring, |
@@ -546,7 +562,6 @@ void mlx4_en_calc_rx_buf(struct net_device *dev); | |||
546 | void mlx4_en_set_default_rss_map(struct mlx4_en_priv *priv, | 562 | void mlx4_en_set_default_rss_map(struct mlx4_en_priv *priv, |
547 | struct mlx4_en_rss_map *rss_map, | 563 | struct mlx4_en_rss_map *rss_map, |
548 | int num_entries, int num_rings); | 564 | int num_entries, int num_rings); |
549 | void mlx4_en_set_prio_map(struct mlx4_en_priv *priv, u16 *prio_map, u32 ring_num); | ||
550 | int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv); | 565 | int mlx4_en_config_rss_steer(struct mlx4_en_priv *priv); |
551 | void mlx4_en_release_rss_steer(struct mlx4_en_priv *priv); | 566 | void mlx4_en_release_rss_steer(struct mlx4_en_priv *priv); |
552 | int mlx4_en_free_tx_buf(struct net_device *dev, struct mlx4_en_tx_ring *ring); | 567 | int mlx4_en_free_tx_buf(struct net_device *dev, struct mlx4_en_tx_ring *ring); |