From e1da0e1859c612ca81d05518cb908642c00c2e93 Mon Sep 17 00:00:00 2001 From: Maxime Chevallier Date: Tue, 24 Mar 2026 19:08:24 +0100 Subject: [PATCH 1/2] net: dsa: microchip: Drop unnecessary check in ksz9477 PCS setup The ksz_dev_ops .pcs_create() is called under the assumption that the switch has a PCS port : if (ksz_has_sgmii_port(dev) && dev->dev_ops->pcs_create) { ret = dev->dev_ops->pcs_create(dev); [...] } The KSZ9477 implementation of .pcs_create() does the same check on ksz_has_sgmii_port(), and protects the entire function with it. Drop it, saving a level of indentation and increasing readability. Signed-off-by: Maxime Chevallier Reviewed-by: Vladimir Oltean Link: https://patch.msgid.link/20260324180826.524327-2-maxime.chevallier@bootlin.com Signed-off-by: Jakub Kicinski --- drivers/net/dsa/microchip/ksz9477.c | 49 ++++++++++++++--------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index 5416016b33e0..30d8c0146bbb 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -310,36 +310,33 @@ static int ksz9477_pcs_write(struct mii_bus *bus, int phy, int mmd, int reg, int ksz9477_pcs_create(struct ksz_device *dev) { - /* This chip has a SGMII port. */ - if (ksz_has_sgmii_port(dev)) { - int port = ksz_get_sgmii_port(dev); - struct ksz_port *p = &dev->ports[port]; - struct phylink_pcs *pcs; - struct mii_bus *bus; - int ret; + int port = ksz_get_sgmii_port(dev); + struct ksz_port *p = &dev->ports[port]; + struct phylink_pcs *pcs; + struct mii_bus *bus; + int ret; - bus = devm_mdiobus_alloc(dev->dev); - if (!bus) - return -ENOMEM; + bus = devm_mdiobus_alloc(dev->dev); + if (!bus) + return -ENOMEM; - bus->name = "ksz_pcs_mdio_bus"; - snprintf(bus->id, MII_BUS_ID_SIZE, "%s-pcs", - dev_name(dev->dev)); - bus->read_c45 = &ksz9477_pcs_read; - bus->write_c45 = &ksz9477_pcs_write; - bus->parent = dev->dev; - bus->phy_mask = ~0; - bus->priv = dev; + bus->name = "ksz_pcs_mdio_bus"; + snprintf(bus->id, MII_BUS_ID_SIZE, "%s-pcs", + dev_name(dev->dev)); + bus->read_c45 = &ksz9477_pcs_read; + bus->write_c45 = &ksz9477_pcs_write; + bus->parent = dev->dev; + bus->phy_mask = ~0; + bus->priv = dev; - ret = devm_mdiobus_register(dev->dev, bus); - if (ret) - return ret; + ret = devm_mdiobus_register(dev->dev, bus); + if (ret) + return ret; - pcs = xpcs_create_pcs_mdiodev(bus, 0); - if (IS_ERR(pcs)) - return PTR_ERR(pcs); - p->pcs = pcs; - } + pcs = xpcs_create_pcs_mdiodev(bus, 0); + if (IS_ERR(pcs)) + return PTR_ERR(pcs); + p->pcs = pcs; return 0; } From 588cd4e7d22cf82081865a6677a468c88d93b4ba Mon Sep 17 00:00:00 2001 From: Maxime Chevallier Date: Tue, 24 Mar 2026 19:08:25 +0100 Subject: [PATCH 2/2] net: dsa: microchip: drop an outdated comment about SGMII support SGMII support has been added to ksz9477, we can drop the comment saying that it'll be added later. Signed-off-by: Maxime Chevallier Reviewed-by: Vladimir Oltean Link: https://patch.msgid.link/20260324180826.524327-3-maxime.chevallier@bootlin.com Signed-off-by: Jakub Kicinski --- drivers/net/dsa/microchip/ksz9477.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index 30d8c0146bbb..d3c23dcaea8c 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -525,7 +525,7 @@ int ksz9477_r_phy(struct ksz_device *dev, u16 addr, u16 reg, u16 *data) * A fixed PHY can be setup in the device tree, but this function is * still called for that port during initialization. * For RGMII PHY there is no way to access it so the fixed PHY should - * be used. For SGMII PHY the supporting code will be added later. + * be used. */ if (!dev->info->internal_phy[addr]) { struct ksz_port *p = &dev->ports[addr];