Commit da6e113f authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Jakub Kicinski
Browse files

net: ethernet: mtk_eth_soc: enable rx cksum offload for MTK_NETSYS_V2

parent 67074ae6
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -1433,8 +1433,8 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
	int done = 0, bytes = 0;

	while (done < budget) {
		unsigned int pktlen, *rxdcsum;
		struct net_device *netdev;
		unsigned int pktlen;
		dma_addr_t dma_addr;
		u32 hash, reason;
		int mac = 0;
@@ -1498,7 +1498,13 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
		pktlen = RX_DMA_GET_PLEN0(trxd.rxd2);
		skb->dev = netdev;
		skb_put(skb, pktlen);
		if (trxd.rxd4 & eth->soc->txrx.rx_dma_l4_valid)

		if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
			rxdcsum = &trxd.rxd3;
		else
			rxdcsum = &trxd.rxd4;

		if (*rxdcsum & eth->soc->txrx.rx_dma_l4_valid)
			skb->ip_summed = CHECKSUM_UNNECESSARY;
		else
			skb_checksum_none_assert(skb);
@@ -3744,6 +3750,7 @@ static const struct mtk_soc_data mt7986_data = {
		.txd_size = sizeof(struct mtk_tx_dma_v2),
		.rxd_size = sizeof(struct mtk_rx_dma_v2),
		.rx_irq_done_mask = MTK_RX_DONE_INT_V2,
		.rx_dma_l4_valid = RX_DMA_L4_VALID_V2,
		.dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
		.dma_len_offset = 8,
	},