diff mbox series

net: ethernet: mtk_eth_soc: add label support for GMACs

Message ID 20220404114000.3549-1-arinc.unal@arinc9.com (mailing list archive)
State New, archived
Headers show
Series net: ethernet: mtk_eth_soc: add label support for GMACs | expand

Commit Message

Arınç ÜNAL April 4, 2022, 11:40 a.m. UTC
From: René van Dorst <opensource@vdorst.com>

Add label support for GMACs. The network interface of the GMAC will have
the string of the label property defined on the devicetree as its name.

Signed-off-by: René van Dorst <opensource@vdorst.com>
[arinc.unal@arinc9.com: change commit log and rebase to current net-next]
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
---
 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Andrew Lunn April 4, 2022, 12:22 p.m. UTC | #1
On Mon, Apr 04, 2022 at 02:40:00PM +0300, Arınç ÜNAL wrote:
> From: René van Dorst <opensource@vdorst.com>
> 
> Add label support for GMACs. The network interface of the GMAC will have
> the string of the label property defined on the devicetree as its name.

Sorry, but no. This has been discussed a few times, you need something
in user space, udev or systemd etc to set interface names.

Please look back in the archive at previous discussions.

   Andrew
Arınç ÜNAL April 5, 2022, 5:15 p.m. UTC | #2
On 04/04/2022 15:22, Andrew Lunn wrote:
> On Mon, Apr 04, 2022 at 02:40:00PM +0300, Arınç ÜNAL wrote:
>> From: René van Dorst <opensource@vdorst.com>
>>
>> Add label support for GMACs. The network interface of the GMAC will have
>> the string of the label property defined on the devicetree as its name.
> 
> Sorry, but no. This has been discussed a few times, you need something
> in user space, udev or systemd etc to set interface names.
> 
> Please look back in the archive at previous discussions.

Thanks for the heads up Andrew, I found your quote from 
https://lore.kernel.org/all/Ydhwfa%2FECqTE3rLx@lunn.ch/:

> I agree with Russell here. I doubt this is going to be accepted.
> 
> DSA is special because DSA is very old, much older than DT, and maybe
> older than udev. The old DSA platform drivers had a mechanism to
> supply the interface name to the DSA core. When we added a DT binding
> to DSA we kept that mechanism, since that mechanism had been used for
> a long time.
> 
> Even if you could show there was a generic old mechanism, from before
> the days of DT, that allowed interface names to be set from platform
> drivers, i doubt it would be accepted because there is no continuity,
> which DSA has.

On MT7621 SoC, we can mux a switch phy of MT7530 (must be phy0 or 4) to 
the SoC's gmac1. So a UTP port connected to that phy becomes directly 
connected to the SoC's gmac1. Because of that, I wanted to be able to 
give the gmac's netdev interface a name from DT like DSA. However, the 
quote above makes sense why not to do so.

Thanks.
Arınç
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index f02d07ec5ccb..af2f0693180a 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2911,6 +2911,7 @@  static const struct net_device_ops mtk_netdev_ops = {
 
 static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
 {
+	const char *name = of_get_property(np, "label", NULL);
 	const __be32 *_id = of_get_property(np, "reg", NULL);
 	phy_interface_t phy_mode;
 	struct phylink *phylink;
@@ -3033,6 +3034,9 @@  static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
 	else
 		eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH_2K - MTK_RX_ETH_HLEN;
 
+	if (name)
+		strlcpy(eth->netdev[id]->name, name, IFNAMSIZ);
+
 	return 0;
 
 free_netdev: