diff options
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/stmmac_main.c')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 003ab56f49b..20546bbbb8d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | |||
@@ -813,6 +813,7 @@ static u32 stmmac_get_synopsys_id(struct stmmac_priv *priv) | |||
813 | static int stmmac_get_hw_features(struct stmmac_priv *priv) | 813 | static int stmmac_get_hw_features(struct stmmac_priv *priv) |
814 | { | 814 | { |
815 | u32 hw_cap = 0; | 815 | u32 hw_cap = 0; |
816 | |||
816 | if (priv->hw->dma->get_hw_feature) { | 817 | if (priv->hw->dma->get_hw_feature) { |
817 | hw_cap = priv->hw->dma->get_hw_feature(priv->ioaddr); | 818 | hw_cap = priv->hw->dma->get_hw_feature(priv->ioaddr); |
818 | 819 | ||
@@ -938,6 +939,7 @@ static int stmmac_open(struct net_device *dev) | |||
938 | 939 | ||
939 | stmmac_get_hw_features(priv); | 940 | stmmac_get_hw_features(priv); |
940 | 941 | ||
942 | priv->rx_coe = priv->hw->mac->rx_coe(priv->ioaddr); | ||
941 | if (priv->rx_coe) | 943 | if (priv->rx_coe) |
942 | pr_info("stmmac: Rx Checksum Offload Engine supported\n"); | 944 | pr_info("stmmac: Rx Checksum Offload Engine supported\n"); |
943 | if (priv->plat->tx_coe) | 945 | if (priv->plat->tx_coe) |
@@ -1275,8 +1277,8 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit) | |||
1275 | #endif | 1277 | #endif |
1276 | skb->protocol = eth_type_trans(skb, priv->dev); | 1278 | skb->protocol = eth_type_trans(skb, priv->dev); |
1277 | 1279 | ||
1278 | if (unlikely(status == csum_none)) { | 1280 | if (unlikely(!priv->rx_coe)) { |
1279 | /* always for the old mac 10/100 */ | 1281 | /* No RX COE for old mac10/100 devices */ |
1280 | skb_checksum_none_assert(skb); | 1282 | skb_checksum_none_assert(skb); |
1281 | netif_receive_skb(skb); | 1283 | netif_receive_skb(skb); |
1282 | } else { | 1284 | } else { |