diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmgenet.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 8f87fe001541..adf8acbddf56 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c | |||
@@ -416,6 +416,15 @@ static int bcmgenet_set_rx_csum(struct net_device *dev, | |||
416 | else | 416 | else |
417 | rbuf_chk_ctrl &= ~RBUF_RXCHK_EN; | 417 | rbuf_chk_ctrl &= ~RBUF_RXCHK_EN; |
418 | priv->desc_rxchk_en = rx_csum_en; | 418 | priv->desc_rxchk_en = rx_csum_en; |
419 | |||
420 | /* If UniMAC forwards CRC, we need to skip over it to get | ||
421 | * a valid CHK bit to be set in the per-packet status word | ||
422 | */ | ||
423 | if (rx_csum_en && priv->crc_fwd_en) | ||
424 | rbuf_chk_ctrl |= RBUF_SKIP_FCS; | ||
425 | else | ||
426 | rbuf_chk_ctrl &= ~RBUF_SKIP_FCS; | ||
427 | |||
419 | bcmgenet_rbuf_writel(priv, rbuf_chk_ctrl, RBUF_CHK_CTRL); | 428 | bcmgenet_rbuf_writel(priv, rbuf_chk_ctrl, RBUF_CHK_CTRL); |
420 | 429 | ||
421 | return 0; | 430 | return 0; |