]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: sparx5: verify RGMII speeds
authorDaniel Machon <daniel.machon@microchip.com>
Fri, 20 Dec 2024 13:48:45 +0000 (14:48 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 23 Dec 2024 18:57:55 +0000 (10:57 -0800)
When doing a port config, we verify the port speed against the PHY mode
and supported speeds of that PHY mode. Add checks for the four RGMII phy
modes: RGMII, RGMII_ID, RGMII_TXID and RGMII_RXID.

Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com>
Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Tested-by: Robert Marko <robert.marko@sartura.hr>
Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
Link: https://patch.msgid.link/20241220-sparx5-lan969x-switch-driver-4-v5-6-fa8ba5dff732@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/microchip/sparx5/sparx5_port.c

index 0a1374422ccbd029f649b4aa699ca193586b09bb..86d6c9e9ec7c1ba250ae0dfcbb2e9a001ec42908 100644 (file)
@@ -257,6 +257,15 @@ static int sparx5_port_verify_speed(struct sparx5 *sparx5,
                     conf->speed != SPEED_25000))
                        return sparx5_port_error(port, conf, SPX5_PERR_SPEED);
                break;
+       case PHY_INTERFACE_MODE_RGMII:
+       case PHY_INTERFACE_MODE_RGMII_ID:
+       case PHY_INTERFACE_MODE_RGMII_TXID:
+       case PHY_INTERFACE_MODE_RGMII_RXID:
+               if (conf->speed != SPEED_1000 &&
+                   conf->speed != SPEED_100 &&
+                   conf->speed != SPEED_10)
+                       return sparx5_port_error(port, conf, SPX5_PERR_SPEED);
+               break;
        default:
                return sparx5_port_error(port, conf, SPX5_PERR_IFTYPE);
        }