summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-10-29 00:03:15 +0000
committerJakub Kicinski <kuba@kernel.org>2025-10-29 17:18:22 -0700
commitf49838f77cf6c50961afa33a5bc1ea95e061d7f0 (patch)
tree1cc3ce14357028fa454097435c8c7bb770a14341
parentfc18b6e98cce2380e8f31b0e5089b11ceecb541d (diff)
net: stmmac: simplify stmmac_get_version()
We can simplify stmmac_get_version() by pre-initialising the version members to zero, detecting the MAC100 core and returning, otherwise determining the version register offset separately from calling stmmac_get_id() and stmmac_get_dev_id(). Do this. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Tested-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Tested-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1vDtel-0000000CCBx-3Lpf@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/hwif.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 4924e74997e4..f6ada5a905fe 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -49,18 +49,22 @@ static void stmmac_get_version(struct stmmac_priv *priv,
struct stmmac_version *ver)
{
enum dwmac_core_type core_type = priv->plat->core_type;
+ unsigned int version_offset;
+ ver->snpsver = 0;
ver->dev_id = 0;
- if (core_type == DWMAC_CORE_GMAC) {
- ver->snpsver = stmmac_get_id(priv, GMAC_VERSION);
- } else if (dwmac_is_xmac(core_type)) {
- ver->snpsver = stmmac_get_id(priv, GMAC4_VERSION);
- if (core_type == DWMAC_CORE_XGMAC)
- ver->dev_id = stmmac_get_dev_id(priv, GMAC4_VERSION);
- } else {
- ver->snpsver = 0;
- }
+ if (core_type == DWMAC_CORE_MAC100)
+ return;
+
+ if (core_type == DWMAC_CORE_GMAC)
+ version_offset = GMAC_VERSION;
+ else
+ version_offset = GMAC4_VERSION;
+
+ ver->snpsver = stmmac_get_id(priv, version_offset);
+ if (core_type == DWMAC_CORE_XGMAC)
+ ver->dev_id = stmmac_get_dev_id(priv, version_offset);
}
static void stmmac_dwmac_mode_quirk(struct stmmac_priv *priv)