[PATCH RESEND2 net-next 0/8] net: stmmac: qcom-ethqos: further serdes reorganisation
Vladimir Oltean
olteanv at gmail.com
Sun Mar 1 06:10:39 PST 2026
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:
> > On Sat, Feb 28, 2026 at 08:31:11AM -0800, Jakub Kicinski wrote:
> > > On Fri, 27 Feb 2026 16:55:56 -0800 Jakub Kicinski wrote:
> > > > On Sat, 28 Feb 2026 00:11:29 +0000 Russell King (Oracle) wrote:
> > > > > 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.
More information about the linux-phy
mailing list