aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/octeon/octeon_mgmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/octeon/octeon_mgmt.c')
-rw-r--r--drivers/net/ethernet/octeon/octeon_mgmt.c27
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;