Thread (59 messages) 59 messages, 5 authors, 2021-08-18

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-05 19:19:08
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

On 8/2/21 1:26 PM, Biju Das wrote:
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_probe
function.
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.h
b/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 Sum on E-Mac or Rx/Tx CheckSum on TOE.
So there is a hw difference. Please let me know what is the best way to handle this?
It seems like the 'feartures'
mirrors the enabled features?
Can you please explain this little bit?
quoted
 	enum ravb_chip_id chip_id;
 	int num_gstat_queue;
 	int num_tx_desc;
diff --git a/drivers/net/ethernet/renesas/ravb_main.c
b/drivers/net/ethernet/renesas/ravb_main.c
index 7a69668cb512..2ac962b5b8fb 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
[...]
quoted
@@ -2077,14 +2081,14 @@ static int ravb_probe(struct platform_device
*pdev)
quoted
 	if (!ndev)
 		return -ENOMEM;

-	ndev->features = NETIF_F_RXCSUM;
-	ndev->hw_features = NETIF_F_RXCSUM;
+	info = of_device_get_match_data(&pdev->dev);
+
+	ndev->features = info->net_features;
+	ndev->hw_features = info->net_hw_features;
   What value you plan to set her for GbEth, NETIF_F_HW_CSUM?
Yes, That is the plan.
.net_hw_features = (NETIF_F_HW_CSUM | NETIF_F_RXCSUM),

Regards,
Biju
[...]

MBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help