From: sashiko-bot@kernel.org
To: "Linus Walleij" <linusw@kernel.org>
Cc: conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH net-next v10 3/4] net: dsa: microchip: Support Microchip KSZ8995XA / KS8995XA
Date: Wed, 09 Sep 2026 09:39:26 +0000 [thread overview]
Message-ID: <20260909093927.591C51F00ADB@smtp.kernel.org> (raw)
In-Reply-To: <20260908-ks8995-to-ksz8-v10-3-7379239eb65f@kernel.org>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Hardware initialization failure: polling PHY soft reset on MAC-only CPU port may cause timeout.
--
commit e3efbaeb1bd18a981cfc0bd58667bbdba4d7252e
Author: Linus Walleij <linusw@kernel.org>
net: dsa: microchip: Support Microchip KSZ8995XA / KS8995XA
This commit adds support for the Microchip KSZ8995XA switch to the KSZ
driver. It includes a custom reset routine that iterates over the switch
ports to issue a self-clearing PHY soft reset.
> diff --git a/drivers/net/dsa/microchip/ksz8.c b/drivers/net/dsa/microchip/ksz8.c
> index 941ae9f66f70b..40d7d0eaf1cee 100644
> --- a/drivers/net/dsa/microchip/ksz8.c
> +++ b/drivers/net/dsa/microchip/ksz8.c
[ ... ]
> @@ -253,7 +255,31 @@ static int ksz8463_reset_switch(struct ksz_device *dev)
>
> static int ksz8_reset_switch(struct ksz_device *dev)
> {
> - if (ksz_is_ksz88x3(dev)) {
> + if (ksz_is_ksz8995xa(dev)) {
> + unsigned int port, reg, val;
> + int ret;
> +
> + /* The KSZ8995XA switch itself cannot be reset by software, but
> + * often boot loaders have fun with ports, so reset them. This
> + * reset bit is self-clearing.
> + */
> + for (port = 0; port < dev->info->port_cnt; port++)
> + ksz_port_cfg(dev, port, REG_PORT_STATUS_3,
> + PORT_PHY_SOFT_RESET, true);
> +
> + /* IEEE 802.3 allows up to 500 ms for a PHY reset. */
> + for (port = 0; port < dev->info->port_cnt; port++) {
> + reg = dev->dev_ops->get_port_addr(port, REG_PORT_STATUS_3);
> + ret = regmap_read_poll_timeout(ksz_regmap_8(dev), reg, val,
> + !(val & PORT_PHY_SOFT_RESET),
> + 1000, 600000);
> + if (ret)
> + return ret;
> + }
[Severity: Medium]
Could this polling loop timeout and abort the switch probe when checking the
CPU port?
In ksz8_reset_switch(), the loop iterates up to dev->info->port_cnt, which
includes the MAC-only CPU port. Since the CPU port does not have an internal
PHY, writing the PORT_PHY_SOFT_RESET bit to it might not self-clear depending
on the hardware register implementation.
If the bit acts as a regular R/W bit on the CPU port rather than being
hardwired to 0, regmap_read_poll_timeout() will poll for 600ms and ultimately
return -ETIMEDOUT. Should this loop iterate up to dev->phy_port_cnt instead,
or explicitly skip the CPU port?
> +
> + /* Some PHYs need additional settling time after reset. */
> + usleep_range(1000, 2000);
> + } else if (ksz_is_ksz88x3(dev)) {
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260908-ks8995-to-ksz8-v10-0-7379239eb65f@kernel.org?part=3
next prev parent reply other threads:[~2026-09-09 9:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-08 9:38 [PATCH net-next v10 0/4] net: dsa: microchip: Add support for KSZ8995XA/KS8995XA Linus Walleij
2026-09-08 9:38 ` [PATCH net-next v10 1/4] dt-bindings: net: dsa: microchip: Add KSZ8995XA Linus Walleij
2026-09-09 9:39 ` sashiko-bot
2026-09-09 10:29 ` Linus Walleij
2026-09-09 12:39 ` netdev-bot+sashiko
2026-09-08 9:38 ` [PATCH net-next v10 2/4] net: dsa: tag_ks8995: Add the KS8995 tag handling Linus Walleij
2026-09-09 9:39 ` sashiko-bot
2026-09-09 10:47 ` Linus Walleij
2026-09-09 12:39 ` netdev-bot+sashiko
2026-09-08 9:38 ` [PATCH net-next v10 3/4] net: dsa: microchip: Support Microchip KSZ8995XA / KS8995XA Linus Walleij
2026-09-09 9:39 ` sashiko-bot [this message]
2026-09-09 10:51 ` Linus Walleij
2026-09-09 12:39 ` netdev-bot+sashiko
2026-09-08 9:38 ` [PATCH net-next v10 4/4] net: dsa: ks8995: Delete surplus driver Linus Walleij
2026-09-09 12:39 ` 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=20260909093927.591C51F00ADB@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linusw@kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.