aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c9
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;