From: netdev-bot+sashiko@kernel.org
To: Selvamani.Rajagopal@onsemi.com
Cc: andrew+netdev@lunn.ch, davem@davemloft.net, kuba@kernel.org,
pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, parthiban.veerasooran@microchip.com,
horms@kernel.org, corbet@lwn.net, skhan@linuxfoundation.org,
rdunlap@infradead.org, richardcochran@gmail.com, andrew@lunn.ch,
hkallweit1@gmail.com, linux@armlinux.org.uk, edumazet@kernel.org,
piergiorgio.beruto@gmail.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, jerry.ray@microchip.com,
ciprian.regus@analog.com
Subject: Re: [PATCH net-next v9 07/11] net: phy: ncn26000: Enable enhanced noise immunity
Date: Sat, 10 Oct 2026 19:40:20 +0000 [thread overview]
Message-ID: <179166122031.434549.452402723237040482@kernel.org> (raw)
In-Reply-To: <20261009-s2500-mac-phy-support-v9-7-dcefe1d0bf0d@onsemi.com>
Thank you for your contribution! Sashiko AI review found more severe
issue(s) in other patches of this series. This mail is only an FYI, in case
you want to address the nit picks below when you respin.
Low priority / nit picks for your consideration:
- [Low] ncn26000_c45_plca_set_cfg() (drivers/net/phy/ncn26000.c) changes
PLCA_EN (through genphy_c45_plca_set_cfg) and ENI (PHYCFG1 BIT(7)) as…
--
net: phy: ncn26000: Enable enhanced noise immunity
This commit wraps genphy_c45_plca_set_cfg() in a new
ncn26000_c45_plca_set_cfg() for the NCN26000. The wrapper sets the
vendor-specific ENI bit in PHYCFG1 when PLCA is enabled and clears it when
PLCA is disabled.
> diff --git a/drivers/net/phy/ncn26000.c b/drivers/net/phy/ncn26000.c
> index cabdd83c614f0..6d433f4e2c45d 100644
> --- a/drivers/net/phy/ncn26000.c
> +++ b/drivers/net/phy/ncn26000.c
[ ... ]
> @@ -100,6 +104,24 @@ static int ncn26000_read_status(struct phy_device *phydev)
> return 0;
> }
>
> +/* Intercept PLCA enable/disable request to
> + * set the proprietary, ENI mode accordingly
> + */
> +static int ncn26000_c45_plca_set_cfg(struct phy_device *phydev,
> + const struct phy_plca_cfg *plca_cfg)
> +{
> + int ret = genphy_c45_plca_set_cfg(phydev, plca_cfg);
> + u16 eni_cfg = 0;
> +
> + if (ret || plca_cfg->enabled < 0)
> + return ret;
[Severity: Low]
Can PLCA_EN and ENI end up out of sync here when an MDIO access fails?
For a disable request (enabled == 0), genphy_c45_plca_set_cfg() clears
PLCA_EN first and only then does the other writes:
drivers/net/phy/phy-c45.c:genphy_c45_plca_set_cfg() {
...
if (plca_cfg->enabled == 0) {
ret = phy_clear_bits_mmd(phydev, MDIO_MMD_VEND2,
MDIO_OATC14_PLCA_CTRL0,
MDIO_OATC14_PLCA_EN);
...
}
Suppose a later write in the same request fails (PLCA_CTRL1, TOTMR or
BURST). The early return above then skips the ENI update. The PHY would
run CSMA/CD with the PLCA-only ENI bit still set.
> +
> + eni_cfg = (plca_cfg->enabled) ? NCN26000_PHYCFG1_ENI : 0;
> + return phy_modify_mmd(phydev, MDIO_MMD_VEND2,
> + NCN26000_REG_PHYCFG1,
> + NCN26000_PHYCFG1_ENI_MASK, eni_cfg);
For an enable request (enabled > 0), genphy_c45_plca_set_cfg() sets
PLCA_EN as its last step and returns 0. If this phy_modify_mmd() on
PHYCFG1 then fails, PLCA stays enabled with ENI clear. Userspace still
gets an error.
genphy_c45_plca_get_cfg() does not report ENI, so ethtool cannot show the
mismatch. A later request that leaves out enabled (enabled == -1) will not
fix it either.
genphy_c45_plca_set_cfg() already leaves partial state behind on failure,
and resending the same request would bring both bits back in line. Even so,
would it make sense to roll back PLCA_EN (or ENI) on the error paths so the
two bits stay consistent?
> +}
> +
[ ... ]
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20261009-s2500-mac-phy-support-v9-0-dcefe1d0bf0d%40onsemi.com
next prev parent reply other threads:[~2026-10-10 19:40 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 17:12 [PATCH net-next v9 00/11] Support for onsemi's S2500 10Base-T1S MAC-PHY Selvamani Rajagopal via B4 Relay
2026-10-09 17:12 ` [PATCH net-next v9 01/11] dt-bindings: net: add onsemi's S2500 Selvamani Rajagopal via B4 Relay
2026-10-09 17:12 ` [PATCH net-next v9 02/11] Documentation: networking: Add timestamp related APIs to OA TC6 framework Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 03/11] net: ethernet: oa_tc6: Move oa_tc6.c to its own directory Selvamani Rajagopal via B4 Relay
2026-10-09 18:40 ` Selvamani Rajagopal
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 04/11] net: ethernet: oa_tc6: Move constant definitions to header file Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 05/11] net: ethernet: oa_tc6: Support for hardware timestamp Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 06/11] net: ethernet: oa_tc6: Support for vendor specific MMS Selvamani Rajagopal via B4 Relay
2026-10-09 18:43 ` Selvamani Rajagopal
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 07/11] net: phy: ncn26000: Enable enhanced noise immunity Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko [this message]
2026-10-09 17:12 ` [PATCH net-next v9 08/11] onsemi: s2500: Add driver support for S2500 MAC-PHY Selvamani Rajagopal via B4 Relay
2026-10-09 23:02 ` Randy Dunlap
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 09/11] onsemi: s2500: Added selftest support to onsemi's S2500 driver Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 10/11] net: phy: ncn26000: Support for onsemi's S2500 internal phy Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko
2026-10-09 17:12 ` [PATCH net-next v9 11/11] net: phy: ncn26000: Support for loopback Selvamani Rajagopal via B4 Relay
2026-10-10 19:40 ` netdev-bot+sashiko
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=179166122031.434549.452402723237040482@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=Selvamani.Rajagopal@onsemi.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=ciprian.regus@analog.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@kernel.org \
--cc=hkallweit1@gmail.com \
--cc=horms@kernel.org \
--cc=jerry.ray@microchip.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=parthiban.veerasooran@microchip.com \
--cc=piergiorgio.beruto@gmail.com \
--cc=rdunlap@infradead.org \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=skhan@linuxfoundation.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
all inboxes | Powered by JetHome®