RE: [PATCH net-next v2 6/8] ravb: Add net_features and net_hw_features to struct ravb_hw_info
From: Biju Das <biju.das.jz@bp.renesas.com>
Date: 2021-08-12 07:35:41
Also in:
linux-renesas-soc
Hi Sergei, Thanks for the feedback.
Subject: Re: [PATCH net-next v2 6/8] ravb: Add net_features and net_hw_features to struct ravb_hw_info Hello! On 8/5/21 10:18 PM, Biju Das wrote: [...]quoted
quoted
quoted
On R-Car the checksum calculation on RX frames is done by the E-MAC module, whereas on RZ/G2L it is done by the TOE. TOE calculates the checksum of received frames from E-MAC and outputs it to DMAC. TOE also calculates the checksum of transmission frames from DMAC and outputs it E-MAC. Add net_features and net_hw_features to struct ravb_hw_info, to support subsequent SoCs without any code changes in the ravb_probefunction.quoted
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>[...]quoted
diff --git a/drivers/net/ethernet/renesas/ravb.hb/drivers/net/ethernet/renesas/ravb.h index b765b2b7d9e9..3df813b2e253 100644--- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h@@ -991,6 +991,8 @@ enum ravb_chip_id { struct ravb_hw_info { const char (*gstrings_stats)[ETH_GSTRING_LEN]; size_t gstrings_size; + netdev_features_t net_hw_features; + netdev_features_t net_features;Do we really need both of these here?R-Car has only Rx Checksum on E-Mac, where as Geth supports Rx Check Sumon E-Mac or Rx/Tx CheckSum on TOE.quoted
So there is a hw difference. Please let me know what is the best way tohandle this? I meant that we could go with only one field of the net_features... Alternatively, we could use our own feature bits...
Basically are you suggesting some thing like unsigned hwcsum_tx_rx: 1;
Then,
if (hwcsum_tx_rx) {
ndev->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
} else {
ndev->features = NETIF_F_RXCSUM;
ndev->hw_features = NETIF_F_RXCSUM;
}
Cheers,
Biju