Re: [PATCH RESEND2 net-next 0/8] net: stmmac: qcom-ethqos: further serdes reorganisation
From: Vladimir Oltean <olteanv@gmail.com>
Date: 2026-03-01 14:10:44
Also in:
linux-arm-msm, linux-phy, netdev
On Sun, Mar 01, 2026 at 01:42:15PM +0000, Russell King (Oracle) wrote:
On Sun, Mar 01, 2026 at 02:14:53AM +0200, Vladimir Oltean wrote:quoted
On Sat, Feb 28, 2026 at 08:31:11AM -0800, Jakub Kicinski wrote:quoted
On Fri, 27 Feb 2026 16:55:56 -0800 Jakub Kicinski wrote:quoted
On Sat, 28 Feb 2026 00:11:29 +0000 Russell King (Oracle) wrote:quoted
The AI review for patch 7 says: This commit fixes a bug but lacks a Fixes: tag. The commit modifies behavior introduced in 360000820ae2 ("phy: qcom-sgmii-eth: add .set_mode() and .validate() methods") by making phy_power_on() call qcom_dwmac_sgmii_phy_calibrate() to restore the previous setup, and by making qcom_dwmac_sgmii_phy_set_mode() check if the PHY is powered on before attempting calibration. Should this commit include: Fixes: 360000820ae2 ("phy: qcom-sgmii-eth: add .set_mode() and .validate() methods") which is _wrong_, this isn't a bug fix.Yes, that's what I thought but then I saw the other thread..Trying to apply this now but stmmac parts don't apply on Linus's tree, and Vinod wants a tag :( What do we do? Could you, perhaps, send us a PR with this on top of Linus's tree (a resolution of the inevitable conflict with net-next would be helpful too). Or do we give up on the tag?Actually, I think it's mainly me who wants a stable tag. I'm working on a series for phy-next which will conflict with this hunk from Russell's patch 1:Is this because of the issues I raised with the quality of generic PHY API implementation by drivers?
I don't think the issue you are referring to is so much a "quality" one as it is a "lack of requirements" one, but to answer - not necessarily. Eventually I'll get to Ethernet Generic PHY interop too, but I saw as first actionable step to clearly delineate what is PHY provider API from what is PHY consumer API, in an attempt to stop PHY consumers from poking inside struct phy. To improve the interop situation, apart from patching drivers, I plan to introduce a new CONFIG_GENERIC_PHY_EXPERIMENTAL (meaning: enable for development, don't enable for production, but drivers required to work with EXPERIMENTAL turned on) which would make a few changes: - make the .validate() function pointer be a required dependency for .set_mode(). - call .validate() before calling .set_mode(), and reject the call if the mode and submode don't pass validation - swap the power state before calling .set_mode(), and restore it afterwards Some of these changes do need that consumer/provider API separation I was talking about. For example, consumers should not look at the power count of the PHY (some of them currently do; not to mention they do this without proper locking). They should only concern themselves with whether *they* powered the PHY up themselves.