Re: [PATCH net-next] net: ethernet: mediatek: Allow gaps in MAC allocation

From: Przemek Kitszel
Date: Tue Jul 02 2024 - 02:58:51 EST


On 7/1/24 21:28, Daniel Golle wrote:
Some devices with MediaTek SoCs don't use the first but only the second
MAC in the chip. Especially with MT7981 which got a built-in 1GE PHY
connected to the second MAC this is quite common.
Make sure to reset and enable PSE also in those cases by skipping gaps
using 'continue' instead of aborting the loop using 'break'.

Fixes: dee4dd10c79a ("net: ethernet: mtk_eth_soc: ppe: add support for multiple PPEs")
Suggested-by: Elad Yifee <eladwf@xxxxxxxxx>
Signed-off-by: Daniel Golle <daniel@xxxxxxxxxxxxxx>
---
Note that this should go to 'net-next' because the commit being fixed
isn't yet part of the 'net' tree.

makes sense, and the fix is correct, so:
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>


drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 13d78d9b3197..2529b5b607c8 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -3396,7 +3396,7 @@ static int mtk_open(struct net_device *dev)
for (i = 0; i < MTK_MAX_DEVS; i++) {
if (!eth->netdev[i])
- break;
+ continue;
target_mac = netdev_priv(eth->netdev[i]);
if (!soc->offload_version) {


what about:
4733│ static int mtk_sgmii_init(struct mtk_eth *eth)
4734│ {
4735│ struct device_node *np;
4736│ struct regmap *regmap;
4737│ u32 flags;
4738│ int i;
4739│
4740│ for (i = 0; i < MTK_MAX_DEVS; i++) {
4741│ np = of_parse_phandle(eth->dev->of_node, "mediatek,sgmiisys", i);
4742│ if (!np)
4743│ break;

should we also continue here?

4744│
4745│ regmap = syscon_node_to_regmap(np);
4746│ flags = 0;
4747│ if (of_property_read_bool(np, "mediatek,pnswap"))
4748│ flags |= MTK_SGMII_FLAG_PN_SWAP;
4749│
4750│ of_node_put(np);
4751│
4752│ if (IS_ERR(regmap))
4753│ return PTR_ERR(regmap);
4754│
4755│ eth->sgmii_pcs[i] = mtk_pcs_lynxi_create(eth->dev, regmap,
4756│ eth->soc->ana_rgc3,
4757│ flags);
4758│ }
4759│
4760│ return 0;
4761│ }