From: netdev-bot+sashiko@kernel.org
To: kyle.switch@motor-comm.com
Cc: andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
mmyangfl@gmail.com, horms@kernel.org, linux@armlinux.org.uk,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
ming.xu@motor-comm.com, xiaolin.xu@motor-comm.com,
jianmin.wang@motor-comm.com, wei.zhang@gl-inet.com,
sijia.huang@gl-inet.com
Subject: Re: [PATCH net-next v8 1/6] net: dsa: motorcomm: initialize dsa_switch based on chipid
Date: Mon, 21 Sep 2026 09:35:24 +0000 [thread overview]
Message-ID: <178998332458.2160803.2420489002220802587@kernel.org> (raw)
In-Reply-To: <20260917082236.3427168-2-kyle.switch@motor-comm.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] yt92xx_register_switch() (drivers/net/dsa/motorcomm/chip.c:4705)
adds a live MDIO transaction and a new, completely silent probe abort…
--
net: dsa: motorcomm: initialize dsa_switch based on chipid
This adds a yt92xx_series table describing per-family dsa_switch
parameters, and a new yt92xx_register_switch() helper that reads the chip
ID and fills in ds fields from the matching table entry. The previously
hardcoded assignments in yt921x_mdio_probe() are removed.
> diff --git a/drivers/net/dsa/motorcomm/chip.c b/drivers/net/dsa/motorcomm/chip.c
> index d663af010f431..564e45ece22cb 100644
> --- a/drivers/net/dsa/motorcomm/chip.c
> +++ b/drivers/net/dsa/motorcomm/chip.c
[ ... ]
> +static int yt92xx_register_switch(struct dsa_switch *ds)
> +{
> + struct yt921x_priv *priv = to_yt921x_priv(ds);
> + const struct yt92xx_series *series;
> + u32 chipid;
> + u32 major;
> + int res;
> +
> + mutex_lock(&priv->reg_lock);
> + res = yt921x_reg_read(priv, YT921X_CHIP_ID, &chipid);
> + mutex_unlock(&priv->reg_lock);
> + if (res)
> + return res;
> +
> + major = FIELD_GET(YT921X_CHIP_ID_MAJOR, chipid);
> + series = yt92xx_series_lookup(major);
> + if (!series)
> + return -ENODEV;
[Severity: Low]
Should this path print something when the chip ID is not recognised?
Before this patch the first register access happened later, in
yt921x_dsa_setup() -> yt921x_chip_detect(), which logs the value it read
before giving up:
drivers/net/dsa/motorcomm/chip.c:yt921x_chip_detect() {
...
if (!info->name) {
dev_err(dev, "Unexpected chipid 0x%x\n", chipid);
return -ENODEV;
}
...
}
Here yt92xx_register_switch() returns a bare -ENODEV when
yt92xx_series_lookup() does not match YT9215_MAJOR or YT9218_MAJOR, and a
bare bus errno when yt921x_reg_read() of YT921X_CHIP_ID fails. Since
really_probe() only pr_debug()s an -ENODEV/-ENXIO return, a board with an
unsupported or non-responding switch would end up with no message in dmesg
explaining why the DSA switch never appeared. Would a dev_err() with the
chipid here keep the previous diagnostics?
Related: the commit message says the change is about
"replacing hardcoded logic in probe()"
which reads as a pure data-driven refactor. Could it also mention that
probe() now performs an MDIO read of YT921X_CHIP_ID and can fail early
because of it? That is a behavioural change for probe(), which previously
had no hardware dependency.
> + priv->series = series;
> +
> + ds->assisted_learning_on_cpu_port =
> + priv->series->assisted_learning_on_cpu_port;
> + ds->dscp_prio_mapping_is_global =
> + priv->series->dscp_prio_mapping_is_global;
> + ds->ageing_time_min = priv->series->ageing_time_min;
> + ds->ageing_time_max = priv->series->ageing_time_max;
> + ds->num_lag_ids = priv->series->num_lag_ids;
> + ds->num_ports = priv->series->max_ports;
> + ds->ops = priv->series->switch_ops;
> + ds->phylink_mac_ops = priv->series->mac_ops;
> +
> + return 0;
> +}
[ ... ]
> @@ -4754,15 +4812,10 @@ static int yt921x_mdio_probe(struct mdio_device *mdiodev)
>
> ds = &priv->ds;
> ds->dev = dev;
> - ds->assisted_learning_on_cpu_port = true;
> - ds->dscp_prio_mapping_is_global = true;
> ds->priv = priv;
> - ds->ops = &yt921x_dsa_switch_ops;
> - ds->ageing_time_min = 1 * 5000;
> - ds->ageing_time_max = U16_MAX * 5000;
> - ds->phylink_mac_ops = &yt921x_phylink_mac_ops;
> - ds->num_lag_ids = YT921X_LAG_NUM;
> - ds->num_ports = YT921X_PORT_NUM;
> + res = yt92xx_register_switch(ds);
> + if (res)
> + return res;
[ ... ]
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260917082236.3427168-1-kyle.switch%40motor-comm.com
next prev parent reply other threads:[~2026-09-21 9:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 8:22 [PATCH net-next v8 0/6] net: dsa: motorcomm: add support yt922x driver Kyle Switch
2026-09-17 8:22 ` [PATCH net-next v8 1/6] net: dsa: motorcomm: initialize dsa_switch based on chipid Kyle Switch
2026-09-21 9:35 ` netdev-bot+sashiko [this message]
2026-09-22 12:41 ` Andrew Lunn
2026-09-17 8:22 ` [PATCH net-next v8 2/6] net: dsa: motorcomm: use max_ports in series for port bounds checking Kyle Switch
2026-09-21 9:35 ` netdev-bot+sashiko
2026-09-22 12:47 ` Andrew Lunn
2026-09-23 1:07 ` Kyle Switch
2026-09-17 8:22 ` [PATCH net-next v8 3/6] net: dsa: motorcomm: move mib start from probe() to dsa_setup() Kyle Switch
2026-09-21 9:35 ` netdev-bot+sashiko
2026-09-17 8:22 ` [PATCH net-next v8 4/6] net: dsa: motorcomm: move mib stop from remove() to teardown() Kyle Switch
2026-09-21 9:35 ` netdev-bot+sashiko
2026-09-17 8:22 ` [PATCH net-next v8 5/6] net: dsa: tag_yt922x: add support for Motorcomm YT922x tags Kyle Switch
2026-09-21 9:35 ` netdev-bot+sashiko
2026-09-17 8:22 ` [PATCH net-next v8 6/6] net: dsa: motorcomm: Add support for Motorcomm YT922x Kyle Switch
2026-09-21 9:35 ` 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=178998332458.2160803.2420489002220802587@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=jianmin.wang@motor-comm.com \
--cc=kuba@kernel.org \
--cc=kyle.switch@motor-comm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=ming.xu@motor-comm.com \
--cc=mmyangfl@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=sijia.huang@gl-inet.com \
--cc=wei.zhang@gl-inet.com \
--cc=xiaolin.xu@motor-comm.com \
/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®