Thread (8 messages) 8 messages, 3 authors, 2025-02-22

Re: [PATCH v7 2/2] net: stmmac: dwc-qos: Add FSD EQoS support

From: "Russell King (Oracle)" <linux@armlinux.org.uk>
Date: 2025-02-21 11:50:03
Also in: linux-arm-kernel, linux-devicetree, lkml

On Fri, Feb 21, 2025 at 04:04:25PM +0530, Swathi K S wrote:
quoted
-----Original Message-----
From: Russell King (Oracle) <linux@armlinux.org.uk>
Sent: 20 February 2025 18:10
To: Swathi K S <redacted>
Cc: krzk+dt@kernel.org; andrew+netdev@lunn.ch; davem@davemloft.net;
edumazet@google.com; kuba@kernel.org; pabeni@redhat.com;
robh@kernel.org; conor+dt@kernel.org; richardcochran@gmail.com;
mcoquelin.stm32@gmail.com; alexandre.torgue@foss.st.com;
netdev@vger.kernel.org; devicetree@vger.kernel.org; linux-stm32@st-md-
mailman.stormreply.com; linux-arm-kernel@lists.infradead.org; linux-
kernel@vger.kernel.org; pankaj.dubey@samsung.com;
ravi.patel@samsung.com; gost.dev@samsung.com
Subject: Re: [PATCH v7 2/2] net: stmmac: dwc-qos: Add FSD EQoS support

On Thu, Feb 20, 2025 at 10:07:12AM +0530, Swathi K S wrote:
quoted
+static int fsd_eqos_probe(struct platform_device *pdev,
+			  struct plat_stmmacenet_data *data,
+			  struct stmmac_resources *res)
+{
+	struct clk *clk_rx1 = NULL;
+	struct clk *clk_rx2 = NULL;
+
+	for (int i = 0; i < data->num_clks; i++) {
+		if (strcmp(data->clks[i].id, "slave_bus") == 0)
+			data->stmmac_clk = data->clks[i].clk;
+		else if (strcmp(data->clks[i].id, "eqos_rxclk_mux") == 0)
+			clk_rx1 = data->clks[i].clk;
+		else if (strcmp(data->clks[i].id, "eqos_phyrxclk") == 0)
+			clk_rx2 = data->clks[i].clk;
+	}
+
+	/* Eth0 RX clock doesn't support MUX */
+	if (clk_rx1)
+		clk_set_parent(clk_rx1, clk_rx2);
Isn't there support in DT for automatically setting the clock tree?
See
https://protect2.fireeye.com/v1/url?k=f0089f78-90ea0225-f0091437-
000babd9f1ba-cf835b8b94ccd94a&q=1&e=4ae794ec-f443-4d77-aee4-
449f53a3a1a4&u=https%3A%2F%2Fgithub.com%2Fdevicetree-org%2Fdt-
schema%2Fblob%2Fmain%2Fdtschema%2Fschemas%2Fclock%2Fclock.yaml
%23L24

Also, I think a cleanup like the below (sorry, it's on top of other
patches I'm
quoted
working on at the moment but could be rebased) would make sense.

With both of these, this should mean that your changes amount to:

1. making data->probe optional
2. providing a dwc_eth_dwmac_data structure that has .stmmac_clk_name
   filled in
3. adding your compatible to the match data with a pointer to the
   above structure.
Hi Russell, 
Thanks for your input.
Will implement this in v8.
But I could not find your patch 'net: stmmac: clean up clock initialisation'
in mailing list
Could you point me to that?
Or do you want me to integrate the below changes into my patch series and
post?

Please let me know
Please have patience - I'm a volunteer here, and I included the patch in
the email for you. You're not the only one whom I'm addressing issues in
the stmmac driver for. Since Sunday, I have a total of 16 new stmmac
patches plus been debugging a regression someone has reported.

Coincidentally, I just sent out the patch as a stand-alone patch, it
should be quicker to get it into net-next rather than trying to get all
the other patches I'd *already* had queued up in first.

https://lore.kernel.org/r/E1tlRMP-004Vt5-W1@rmk-PC.armlinux.org.uk (local)

However, I'm expecting someone to say that dwc_eth_find_clk() should be
moved into the stmmac platform code, and the other platforms need to be
converted to use it... so it may be some time before we're at a stage
where you can proceed.

Please be patient.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help