diff options
Diffstat (limited to 'drivers/net/ethernet/octeon/octeon_mgmt.c')
-rw-r--r-- | drivers/net/ethernet/octeon/octeon_mgmt.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/net/ethernet/octeon/octeon_mgmt.c b/drivers/net/ethernet/octeon/octeon_mgmt.c index ccb1f8172cab..5be431c25147 100644 --- a/drivers/net/ethernet/octeon/octeon_mgmt.c +++ b/drivers/net/ethernet/octeon/octeon_mgmt.c | |||
@@ -34,8 +34,7 @@ | |||
34 | 34 | ||
35 | #define OCTEON_MGMT_NAPI_WEIGHT 16 | 35 | #define OCTEON_MGMT_NAPI_WEIGHT 16 |
36 | 36 | ||
37 | /* | 37 | /* Ring sizes that are powers of two allow for more efficient modulo |
38 | * Ring sizes that are powers of two allow for more efficient modulo | ||
39 | * opertions. | 38 | * opertions. |
40 | */ | 39 | */ |
41 | #define OCTEON_MGMT_RX_RING_SIZE 512 | 40 | #define OCTEON_MGMT_RX_RING_SIZE 512 |
@@ -431,8 +430,7 @@ good: | |||
431 | netif_receive_skb(skb); | 430 | netif_receive_skb(skb); |
432 | rc = 0; | 431 | rc = 0; |
433 | } else if (re.s.code == RING_ENTRY_CODE_MORE) { | 432 | } else if (re.s.code == RING_ENTRY_CODE_MORE) { |
434 | /* | 433 | /* Packet split across skbs. This can happen if we |
435 | * Packet split across skbs. This can happen if we | ||
436 | * increase the MTU. Buffers that are already in the | 434 | * increase the MTU. Buffers that are already in the |
437 | * rx ring can then end up being too small. As the rx | 435 | * rx ring can then end up being too small. As the rx |
438 | * ring is refilled, buffers sized for the new MTU | 436 | * ring is refilled, buffers sized for the new MTU |
@@ -462,8 +460,7 @@ good: | |||
462 | } else { | 460 | } else { |
463 | /* Some other error, discard it. */ | 461 | /* Some other error, discard it. */ |
464 | dev_kfree_skb_any(skb); | 462 | dev_kfree_skb_any(skb); |
465 | /* | 463 | /* Error statistics are accumulated in |
466 | * Error statistics are accumulated in | ||
467 | * octeon_mgmt_update_rx_stats. | 464 | * octeon_mgmt_update_rx_stats. |
468 | */ | 465 | */ |
469 | } | 466 | } |
@@ -590,8 +587,7 @@ static void octeon_mgmt_set_rx_filtering(struct net_device *netdev) | |||
590 | cam_mode = 0; | 587 | cam_mode = 0; |
591 | available_cam_entries = 8; | 588 | available_cam_entries = 8; |
592 | } else { | 589 | } else { |
593 | /* | 590 | /* One CAM entry for the primary address, leaves seven |
594 | * One CAM entry for the primary address, leaves seven | ||
595 | * for the secondary addresses. | 591 | * for the secondary addresses. |
596 | */ | 592 | */ |
597 | available_cam_entries = 7 - netdev->uc.count; | 593 | available_cam_entries = 7 - netdev->uc.count; |
@@ -663,8 +659,7 @@ static int octeon_mgmt_change_mtu(struct net_device *netdev, int new_mtu) | |||
663 | struct octeon_mgmt *p = netdev_priv(netdev); | 659 | struct octeon_mgmt *p = netdev_priv(netdev); |
664 | int size_without_fcs = new_mtu + OCTEON_MGMT_RX_HEADROOM; | 660 | int size_without_fcs = new_mtu + OCTEON_MGMT_RX_HEADROOM; |
665 | 661 | ||
666 | /* | 662 | /* Limit the MTU to make sure the ethernet packets are between |
667 | * Limit the MTU to make sure the ethernet packets are between | ||
668 | * 64 bytes and 16383 bytes. | 663 | * 64 bytes and 16383 bytes. |
669 | */ | 664 | */ |
670 | if (size_without_fcs < 64 || size_without_fcs > 16383) { | 665 | if (size_without_fcs < 64 || size_without_fcs > 16383) { |
@@ -1044,8 +1039,7 @@ static int octeon_mgmt_open(struct net_device *netdev) | |||
1044 | } | 1039 | } |
1045 | if (OCTEON_IS_MODEL(OCTEON_CN56XX_PASS1_X) | 1040 | if (OCTEON_IS_MODEL(OCTEON_CN56XX_PASS1_X) |
1046 | || OCTEON_IS_MODEL(OCTEON_CN52XX_PASS1_X)) { | 1041 | || OCTEON_IS_MODEL(OCTEON_CN52XX_PASS1_X)) { |
1047 | /* | 1042 | /* Force compensation values, as they are not |
1048 | * Force compensation values, as they are not | ||
1049 | * determined properly by HW | 1043 | * determined properly by HW |
1050 | */ | 1044 | */ |
1051 | union cvmx_agl_gmx_drv_ctl drv_ctl; | 1045 | union cvmx_agl_gmx_drv_ctl drv_ctl; |
@@ -1078,8 +1072,7 @@ static int octeon_mgmt_open(struct net_device *netdev) | |||
1078 | 1072 | ||
1079 | octeon_mgmt_change_mtu(netdev, netdev->mtu); | 1073 | octeon_mgmt_change_mtu(netdev, netdev->mtu); |
1080 | 1074 | ||
1081 | /* | 1075 | /* Enable the port HW. Packets are not allowed until |
1082 | * Enable the port HW. Packets are not allowed until | ||
1083 | * cvmx_mgmt_port_enable() is called. | 1076 | * cvmx_mgmt_port_enable() is called. |
1084 | */ | 1077 | */ |
1085 | mix_ctl.u64 = 0; | 1078 | mix_ctl.u64 = 0; |
@@ -1196,8 +1189,7 @@ static int octeon_mgmt_open(struct net_device *netdev) | |||
1196 | rxx_frm_ctl.u64 = 0; | 1189 | rxx_frm_ctl.u64 = 0; |
1197 | rxx_frm_ctl.s.ptp_mode = p->has_rx_tstamp ? 1 : 0; | 1190 | rxx_frm_ctl.s.ptp_mode = p->has_rx_tstamp ? 1 : 0; |
1198 | rxx_frm_ctl.s.pre_align = 1; | 1191 | rxx_frm_ctl.s.pre_align = 1; |
1199 | /* | 1192 | /* When set, disables the length check for non-min sized pkts |
1200 | * When set, disables the length check for non-min sized pkts | ||
1201 | * with padding in the client data. | 1193 | * with padding in the client data. |
1202 | */ | 1194 | */ |
1203 | rxx_frm_ctl.s.pad_len = 1; | 1195 | rxx_frm_ctl.s.pad_len = 1; |
@@ -1215,8 +1207,7 @@ static int octeon_mgmt_open(struct net_device *netdev) | |||
1215 | rxx_frm_ctl.s.ctl_drp = 1; | 1207 | rxx_frm_ctl.s.ctl_drp = 1; |
1216 | /* Strip off the preamble */ | 1208 | /* Strip off the preamble */ |
1217 | rxx_frm_ctl.s.pre_strp = 1; | 1209 | rxx_frm_ctl.s.pre_strp = 1; |
1218 | /* | 1210 | /* This port is configured to send PREAMBLE+SFD to begin every |
1219 | * This port is configured to send PREAMBLE+SFD to begin every | ||
1220 | * frame. GMX checks that the PREAMBLE is sent correctly. | 1211 | * frame. GMX checks that the PREAMBLE is sent correctly. |
1221 | */ | 1212 | */ |
1222 | rxx_frm_ctl.s.pre_chk = 1; | 1213 | rxx_frm_ctl.s.pre_chk = 1; |