From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: Vinod Koul <vkoul@kernel.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, linux-phy@lists.infradead.org
Subject: Re: [PATCH net-next] doc: generic phy: update generic PHY documentation
Date: Thu, 12 Feb 2026 10:01:57 +0000 [thread overview]
Message-ID: <aY2lFTIALH7qEJmM@shell.armlinux.org.uk> (raw)
In-Reply-To: <20260212091332.qcpi3qyynmdp4acv@skbuf>
On Thu, Feb 12, 2026 at 11:13:32AM +0200, Vladimir Oltean wrote:
> Also thinking out loud, we could do something else - introduce something
> similar in spirit to CONFIG_DEBUG_TEST_DRIVER_REMOVE, which would be a
> debug option that sees what power state the PHY is in during the
> phy_set_mode_ext() call, flips it before calling ->set_mode() (calling
> either ->power_on() or ->power_off()), and restores it after the call.
>
> Having this option should also give PHY provider developers a quick way
> of testing both calling orders without modifying the consumers.
I don't think anyone would enable that option, beause clearly what
happens is they develop their generic PHY driver, and also develop
the consumer of that generic PHY driver. Once it works, they say
"job done" and submit it.
I was thinking that maybe some automated testing is needed, but
that runs into other problems:
1. any test code doesn't have any way to determine what a PHY
driver supports, because phy_validate() is optional. So it has
no way to know whether e.g. PHY_MODE_ETHERNET is supported or
not. Calling phy_set_mode() isn't sufficient, if ->set_mode()
isn't implemented, this is effectively a no-op.
2. drivers that just return success for ->set_mode() irrespective
of the PHY power state but don't program the hardware would be
undetectable.
I'm also going to point out that phy-core allows ->set_mode() to be
unimplemented, yet the phy_mode is stored. It looks to me like this is
intentional part of the API, which means that phy_set_mode*() is not
expected to always result in the hardware being programmed. That
brings up the obvious question: if phy_set_mode() is not expected to
always reprogram the hardware, then what phy API call should follow
this to ensure the hardware is reprogrammed.
On the other hand, if the API intention was that ->set_mode() must be
implemented if phy_set_mode*() is to be accepted, then surely
phy_set_mode_ext() should be checking that phy->ops->set_mode exists,
and returning -EOPNOTSUPP if it doesn't.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2026-02-12 10:02 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-05 14:56 [PATCH net-next] doc: generic phy: update generic PHY documentation Russell King (Oracle)
2026-02-11 15:48 ` Vladimir Oltean
2026-02-11 18:15 ` Russell King (Oracle)
2026-02-11 19:30 ` Vladimir Oltean
2026-02-11 19:45 ` Vladimir Oltean
2026-02-11 20:31 ` Russell King (Oracle)
2026-02-12 5:14 ` Vinod Koul
2026-02-12 9:13 ` Vladimir Oltean
2026-02-12 10:01 ` Russell King (Oracle) [this message]
2026-02-12 10:05 ` Russell King (Oracle)
2026-02-12 10:38 ` Vladimir Oltean
2026-02-12 11:55 ` Russell King (Oracle)
2026-02-12 5:06 ` Vinod Koul
2026-02-18 13:15 ` Russell King (Oracle)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aY2lFTIALH7qEJmM@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=neil.armstrong@linaro.org \
--cc=olteanv@gmail.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox