diff options
| -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 ccb1f8172ca..5be431c2514 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; |
