Thread (1 message) 1 message, 1 author, 2023-02-03

Re: [PATCH 8/9] net: ethernet: mtk_eth_soc: switch to external PCS driver

From: Vladimir Oltean <olteanv@gmail.com>
Date: 2023-02-03 21:56:38
Also in: linux-arm-kernel, linux-mediatek, lkml

On Fri, Feb 03, 2023 at 07:06:10AM +0000, Daniel Golle wrote:
 int mtk_sgmii_init(struct mtk_sgmii *ss, struct device_node *r, u32 ana_rgc3)
 {
 	struct device_node *np;
 	int i;
+	u32 flags;
+	struct regmap *regmap;
 
 	for (i = 0; i < MTK_MAX_DEVS; i++) {
 		np = of_parse_phandle(r, "mediatek,sgmiisys", i);
 		if (!np)
 			break;
 
-		ss->pcs[i].ana_rgc3 = ana_rgc3;
-		ss->pcs[i].regmap = syscon_node_to_regmap(np);
-
-		ss->pcs[i].flags = 0;
+		flags = 0;
 		if (of_property_read_bool(np, "pn_swap"))
-			ss->pcs[i].flags |= MTK_SGMII_FLAG_PN_SWAP;
+			flags |= MTK_SGMII_FLAG_PN_SWAP;
 
 		of_node_put(np);
-		if (IS_ERR(ss->pcs[i].regmap))
-			return PTR_ERR(ss->pcs[i].regmap);
 
-		ss->pcs[i].pcs.ops = &mtk_pcs_ops;
-		ss->pcs[i].pcs.poll = true;
-		ss->pcs[i].interface = PHY_INTERFACE_MODE_NA;
+		regmap = syscon_node_to_regmap(np);
Not supposed to use "np" after of_node_put().
+		if (IS_ERR(regmap))
+			return PTR_ERR(regmap);
+
+		ss->pcs[i] = mtk_pcs_create(ss->dev, regmap, ana_rgc3, flags);
 	}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help