diff options
author | Yevgeny Petrilin <yevgenyp@mellanox.co.il> | 2009-06-01 19:20:18 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-02 05:29:03 -0400 |
commit | a2b28737a2c504ad4306eec30fc893e7f4513359 (patch) | |
tree | 6e77c4e74c0d2b9fc41e1b4ba8fabbc09381ebd1 | |
parent | 453a608277355735190e05c43f909808e0f73641 (diff) |
mlx4_en: Moved all module parameters handling to en_main.c
en_params.c file now only handles Ethtool functionality
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/mlx4/en_main.c | 54 | ||||
-rw-r--r-- | drivers/net/mlx4/en_params.c | 58 | ||||
-rw-r--r-- | drivers/net/mlx4/mlx4_en.h | 2 |
3 files changed, 54 insertions, 60 deletions
diff --git a/drivers/net/mlx4/en_main.c b/drivers/net/mlx4/en_main.c index 510633fd57f6..23955d8891b7 100644 --- a/drivers/net/mlx4/en_main.c +++ b/drivers/net/mlx4/en_main.c | |||
@@ -51,6 +51,60 @@ static const char mlx4_en_version[] = | |||
51 | DRV_NAME ": Mellanox ConnectX HCA Ethernet driver v" | 51 | DRV_NAME ": Mellanox ConnectX HCA Ethernet driver v" |
52 | DRV_VERSION " (" DRV_RELDATE ")\n"; | 52 | DRV_VERSION " (" DRV_RELDATE ")\n"; |
53 | 53 | ||
54 | #define MLX4_EN_PARM_INT(X, def_val, desc) \ | ||
55 | static unsigned int X = def_val;\ | ||
56 | module_param(X , uint, 0444); \ | ||
57 | MODULE_PARM_DESC(X, desc); | ||
58 | |||
59 | |||
60 | /* | ||
61 | * Device scope module parameters | ||
62 | */ | ||
63 | |||
64 | |||
65 | /* Use a XOR rathern than Toeplitz hash function for RSS */ | ||
66 | MLX4_EN_PARM_INT(rss_xor, 0, "Use XOR hash function for RSS"); | ||
67 | |||
68 | /* RSS hash type mask - default to <saddr, daddr, sport, dport> */ | ||
69 | MLX4_EN_PARM_INT(rss_mask, 0xf, "RSS hash type bitmask"); | ||
70 | |||
71 | /* Number of LRO sessions per Rx ring (rounded up to a power of two) */ | ||
72 | MLX4_EN_PARM_INT(num_lro, MLX4_EN_MAX_LRO_DESCRIPTORS, | ||
73 | "Number of LRO sessions per ring or disabled (0)"); | ||
74 | |||
75 | /* Priority pausing */ | ||
76 | MLX4_EN_PARM_INT(pfctx, 0, "Priority based Flow Control policy on TX[7:0]." | ||
77 | " Per priority bit mask"); | ||
78 | MLX4_EN_PARM_INT(pfcrx, 0, "Priority based Flow Control policy on RX[7:0]." | ||
79 | " Per priority bit mask"); | ||
80 | |||
81 | static int mlx4_en_get_profile(struct mlx4_en_dev *mdev) | ||
82 | { | ||
83 | struct mlx4_en_profile *params = &mdev->profile; | ||
84 | int i; | ||
85 | |||
86 | params->rss_xor = (rss_xor != 0); | ||
87 | params->rss_mask = rss_mask & 0x1f; | ||
88 | params->num_lro = min_t(int, num_lro , MLX4_EN_MAX_LRO_DESCRIPTORS); | ||
89 | for (i = 1; i <= MLX4_MAX_PORTS; i++) { | ||
90 | params->prof[i].rx_pause = 1; | ||
91 | params->prof[i].rx_ppp = pfcrx; | ||
92 | params->prof[i].tx_pause = 1; | ||
93 | params->prof[i].tx_ppp = pfctx; | ||
94 | params->prof[i].tx_ring_size = MLX4_EN_DEF_TX_RING_SIZE; | ||
95 | params->prof[i].rx_ring_size = MLX4_EN_DEF_RX_RING_SIZE; | ||
96 | } | ||
97 | if (pfcrx || pfctx) { | ||
98 | params->prof[1].tx_ring_num = MLX4_EN_TX_RING_NUM; | ||
99 | params->prof[2].tx_ring_num = MLX4_EN_TX_RING_NUM; | ||
100 | } else { | ||
101 | params->prof[1].tx_ring_num = 1; | ||
102 | params->prof[2].tx_ring_num = 1; | ||
103 | } | ||
104 | |||
105 | return 0; | ||
106 | } | ||
107 | |||
54 | static void mlx4_en_event(struct mlx4_dev *dev, void *endev_ptr, | 108 | static void mlx4_en_event(struct mlx4_dev *dev, void *endev_ptr, |
55 | enum mlx4_dev_event event, int port) | 109 | enum mlx4_dev_event event, int port) |
56 | { | 110 | { |
diff --git a/drivers/net/mlx4/en_params.c b/drivers/net/mlx4/en_params.c index 3290fec64b2c..91d81169e04e 100644 --- a/drivers/net/mlx4/en_params.c +++ b/drivers/net/mlx4/en_params.c | |||
@@ -38,64 +38,6 @@ | |||
38 | #include "mlx4_en.h" | 38 | #include "mlx4_en.h" |
39 | #include "en_port.h" | 39 | #include "en_port.h" |
40 | 40 | ||
41 | #define MLX4_EN_PARM_INT(X, def_val, desc) \ | ||
42 | static unsigned int X = def_val;\ | ||
43 | module_param(X , uint, 0444); \ | ||
44 | MODULE_PARM_DESC(X, desc); | ||
45 | |||
46 | |||
47 | /* | ||
48 | * Device scope module parameters | ||
49 | */ | ||
50 | |||
51 | |||
52 | /* Use a XOR rathern than Toeplitz hash function for RSS */ | ||
53 | MLX4_EN_PARM_INT(rss_xor, 0, "Use XOR hash function for RSS"); | ||
54 | |||
55 | /* RSS hash type mask - default to <saddr, daddr, sport, dport> */ | ||
56 | MLX4_EN_PARM_INT(rss_mask, 0xf, "RSS hash type bitmask"); | ||
57 | |||
58 | /* Number of LRO sessions per Rx ring (rounded up to a power of two) */ | ||
59 | MLX4_EN_PARM_INT(num_lro, MLX4_EN_MAX_LRO_DESCRIPTORS, | ||
60 | "Number of LRO sessions per ring or disabled (0)"); | ||
61 | |||
62 | /* Priority pausing */ | ||
63 | MLX4_EN_PARM_INT(pfctx, 0, "Priority based Flow Control policy on TX[7:0]." | ||
64 | " Per priority bit mask"); | ||
65 | MLX4_EN_PARM_INT(pfcrx, 0, "Priority based Flow Control policy on RX[7:0]." | ||
66 | " Per priority bit mask"); | ||
67 | |||
68 | int mlx4_en_get_profile(struct mlx4_en_dev *mdev) | ||
69 | { | ||
70 | struct mlx4_en_profile *params = &mdev->profile; | ||
71 | int i; | ||
72 | |||
73 | params->rss_xor = (rss_xor != 0); | ||
74 | params->rss_mask = rss_mask & 0x1f; | ||
75 | params->num_lro = min_t(int, num_lro , MLX4_EN_MAX_LRO_DESCRIPTORS); | ||
76 | for (i = 1; i <= MLX4_MAX_PORTS; i++) { | ||
77 | params->prof[i].rx_pause = 1; | ||
78 | params->prof[i].rx_ppp = pfcrx; | ||
79 | params->prof[i].tx_pause = 1; | ||
80 | params->prof[i].tx_ppp = pfctx; | ||
81 | params->prof[i].tx_ring_size = MLX4_EN_DEF_TX_RING_SIZE; | ||
82 | params->prof[i].rx_ring_size = MLX4_EN_DEF_RX_RING_SIZE; | ||
83 | } | ||
84 | if (pfcrx || pfctx) { | ||
85 | params->prof[1].tx_ring_num = MLX4_EN_TX_RING_NUM; | ||
86 | params->prof[2].tx_ring_num = MLX4_EN_TX_RING_NUM; | ||
87 | } else { | ||
88 | params->prof[1].tx_ring_num = 1; | ||
89 | params->prof[2].tx_ring_num = 1; | ||
90 | } | ||
91 | |||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | |||
96 | /* | ||
97 | * Ethtool support | ||
98 | */ | ||
99 | 41 | ||
100 | static void mlx4_en_update_lro_stats(struct mlx4_en_priv *priv) | 42 | static void mlx4_en_update_lro_stats(struct mlx4_en_priv *priv) |
101 | { | 43 | { |
diff --git a/drivers/net/mlx4/mlx4_en.h b/drivers/net/mlx4/mlx4_en.h index c92b38247969..174ae86e9523 100644 --- a/drivers/net/mlx4/mlx4_en.h +++ b/drivers/net/mlx4/mlx4_en.h | |||
@@ -516,8 +516,6 @@ void mlx4_en_stop_port(struct net_device *dev); | |||
516 | void mlx4_en_free_resources(struct mlx4_en_priv *priv); | 516 | void mlx4_en_free_resources(struct mlx4_en_priv *priv); |
517 | int mlx4_en_alloc_resources(struct mlx4_en_priv *priv); | 517 | int mlx4_en_alloc_resources(struct mlx4_en_priv *priv); |
518 | 518 | ||
519 | int mlx4_en_get_profile(struct mlx4_en_dev *mdev); | ||
520 | |||
521 | int mlx4_en_create_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq, | 519 | int mlx4_en_create_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq, |
522 | int entries, int ring, enum cq_type mode); | 520 | int entries, int ring, enum cq_type mode); |
523 | void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq); | 521 | void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq); |