diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:43:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:43:21 -0400 |
commit | 06f4e926d256d902dd9a53dcb400fd74974ce087 (patch) | |
tree | 0b438b67f5f0eff6fd617bc497a9dace6164a488 /drivers/net/ehea | |
parent | 8e7bfcbab3825d1b404d615cb1b54f44ff81f981 (diff) | |
parent | d93515611bbc70c2fe4db232e5feb448ed8e4cc9 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits)
macvlan: fix panic if lowerdev in a bond
tg3: Add braces around 5906 workaround.
tg3: Fix NETIF_F_LOOPBACK error
macvlan: remove one synchronize_rcu() call
networking: NET_CLS_ROUTE4 depends on INET
irda: Fix error propagation in ircomm_lmp_connect_response()
irda: Kill set but unused variable 'bytes' in irlan_check_command_param()
irda: Kill set but unused variable 'clen' in ircomm_connect_indication()
rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport()
be2net: Kill set but unused variable 'req' in lancer_fw_download()
irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication()
atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined.
rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer().
rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler()
rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection()
rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window()
pkt_sched: Kill set but unused variable 'protocol' in tc_classify()
isdn: capi: Use pr_debug() instead of ifdefs.
tg3: Update version to 3.119
tg3: Apply rx_discards fix to 5719/5720
...
Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c
as per Davem.
Diffstat (limited to 'drivers/net/ehea')
-rw-r--r-- | drivers/net/ehea/ehea_ethtool.c | 46 | ||||
-rw-r--r-- | drivers/net/ehea/ehea_main.c | 4 |
2 files changed, 21 insertions, 29 deletions
diff --git a/drivers/net/ehea/ehea_ethtool.c b/drivers/net/ehea/ehea_ethtool.c index f3bbdcef338c..7f642aef5e82 100644 --- a/drivers/net/ehea/ehea_ethtool.c +++ b/drivers/net/ehea/ehea_ethtool.c | |||
@@ -34,6 +34,7 @@ | |||
34 | static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | 34 | static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) |
35 | { | 35 | { |
36 | struct ehea_port *port = netdev_priv(dev); | 36 | struct ehea_port *port = netdev_priv(dev); |
37 | u32 speed; | ||
37 | int ret; | 38 | int ret; |
38 | 39 | ||
39 | ret = ehea_sense_port_attr(port); | 40 | ret = ehea_sense_port_attr(port); |
@@ -43,17 +44,29 @@ static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | |||
43 | 44 | ||
44 | if (netif_carrier_ok(dev)) { | 45 | if (netif_carrier_ok(dev)) { |
45 | switch (port->port_speed) { | 46 | switch (port->port_speed) { |
46 | case EHEA_SPEED_10M: cmd->speed = SPEED_10; break; | 47 | case EHEA_SPEED_10M: |
47 | case EHEA_SPEED_100M: cmd->speed = SPEED_100; break; | 48 | speed = SPEED_10; |
48 | case EHEA_SPEED_1G: cmd->speed = SPEED_1000; break; | 49 | break; |
49 | case EHEA_SPEED_10G: cmd->speed = SPEED_10000; break; | 50 | case EHEA_SPEED_100M: |
51 | speed = SPEED_100; | ||
52 | break; | ||
53 | case EHEA_SPEED_1G: | ||
54 | speed = SPEED_1000; | ||
55 | break; | ||
56 | case EHEA_SPEED_10G: | ||
57 | speed = SPEED_10000; | ||
58 | break; | ||
59 | default: | ||
60 | speed = -1; | ||
61 | break; /* BUG */ | ||
50 | } | 62 | } |
51 | cmd->duplex = port->full_duplex == 1 ? | 63 | cmd->duplex = port->full_duplex == 1 ? |
52 | DUPLEX_FULL : DUPLEX_HALF; | 64 | DUPLEX_FULL : DUPLEX_HALF; |
53 | } else { | 65 | } else { |
54 | cmd->speed = -1; | 66 | speed = ~0; |
55 | cmd->duplex = -1; | 67 | cmd->duplex = -1; |
56 | } | 68 | } |
69 | ethtool_cmd_speed_set(cmd, speed); | ||
57 | 70 | ||
58 | if (cmd->speed == SPEED_10000) { | 71 | if (cmd->speed == SPEED_10000) { |
59 | cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); | 72 | cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); |
@@ -167,11 +180,6 @@ static void ehea_set_msglevel(struct net_device *dev, u32 value) | |||
167 | port->msg_enable = value; | 180 | port->msg_enable = value; |
168 | } | 181 | } |
169 | 182 | ||
170 | static u32 ehea_get_rx_csum(struct net_device *dev) | ||
171 | { | ||
172 | return 1; | ||
173 | } | ||
174 | |||
175 | static char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = { | 183 | static char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = { |
176 | {"sig_comp_iv"}, | 184 | {"sig_comp_iv"}, |
177 | {"swqe_refill_th"}, | 185 | {"swqe_refill_th"}, |
@@ -268,34 +276,16 @@ static void ehea_get_ethtool_stats(struct net_device *dev, | |||
268 | 276 | ||
269 | } | 277 | } |
270 | 278 | ||
271 | static int ehea_set_flags(struct net_device *dev, u32 data) | ||
272 | { | ||
273 | /* Avoid changing the VLAN flags */ | ||
274 | if ((data & (ETH_FLAG_RXVLAN | ETH_FLAG_TXVLAN)) != | ||
275 | (ethtool_op_get_flags(dev) & (ETH_FLAG_RXVLAN | | ||
276 | ETH_FLAG_TXVLAN))){ | ||
277 | return -EINVAL; | ||
278 | } | ||
279 | |||
280 | return ethtool_op_set_flags(dev, data, ETH_FLAG_LRO | ||
281 | | ETH_FLAG_TXVLAN | ||
282 | | ETH_FLAG_RXVLAN); | ||
283 | } | ||
284 | |||
285 | const struct ethtool_ops ehea_ethtool_ops = { | 279 | const struct ethtool_ops ehea_ethtool_ops = { |
286 | .get_settings = ehea_get_settings, | 280 | .get_settings = ehea_get_settings, |
287 | .get_drvinfo = ehea_get_drvinfo, | 281 | .get_drvinfo = ehea_get_drvinfo, |
288 | .get_msglevel = ehea_get_msglevel, | 282 | .get_msglevel = ehea_get_msglevel, |
289 | .set_msglevel = ehea_set_msglevel, | 283 | .set_msglevel = ehea_set_msglevel, |
290 | .get_link = ethtool_op_get_link, | 284 | .get_link = ethtool_op_get_link, |
291 | .set_tso = ethtool_op_set_tso, | ||
292 | .get_strings = ehea_get_strings, | 285 | .get_strings = ehea_get_strings, |
293 | .get_sset_count = ehea_get_sset_count, | 286 | .get_sset_count = ehea_get_sset_count, |
294 | .get_ethtool_stats = ehea_get_ethtool_stats, | 287 | .get_ethtool_stats = ehea_get_ethtool_stats, |
295 | .get_rx_csum = ehea_get_rx_csum, | ||
296 | .set_settings = ehea_set_settings, | 288 | .set_settings = ehea_set_settings, |
297 | .get_flags = ethtool_op_get_flags, | ||
298 | .set_flags = ehea_set_flags, | ||
299 | .nway_reset = ehea_nway_reset, /* Restart autonegotiation */ | 289 | .nway_reset = ehea_nway_reset, /* Restart autonegotiation */ |
300 | }; | 290 | }; |
301 | 291 | ||
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 2c60435f2beb..6a0a8fca62bc 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c | |||
@@ -3263,10 +3263,12 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter, | |||
3263 | dev->netdev_ops = &ehea_netdev_ops; | 3263 | dev->netdev_ops = &ehea_netdev_ops; |
3264 | ehea_set_ethtool_ops(dev); | 3264 | ehea_set_ethtool_ops(dev); |
3265 | 3265 | ||
3266 | dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO | ||
3267 | | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX | NETIF_F_LRO; | ||
3266 | dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO | 3268 | dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO |
3267 | | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX | 3269 | | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX |
3268 | | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER | 3270 | | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER |
3269 | | NETIF_F_LLTX; | 3271 | | NETIF_F_LLTX | NETIF_F_RXCSUM; |
3270 | dev->watchdog_timeo = EHEA_WATCH_DOG_TIMEOUT; | 3272 | dev->watchdog_timeo = EHEA_WATCH_DOG_TIMEOUT; |
3271 | 3273 | ||
3272 | if (use_lro) | 3274 | if (use_lro) |