On Fri, Jun 24, 2022 at 04:39:50PM +0200, Clément Léger wrote: > Add a PCS driver for the MII converter that is present on the Renesas > RZ/N1 SoC. This MII converter is reponsible for converting MII to > RMII/RGMII or act as a MII pass-trough. Exposing it as a PCS allows to > reuse it in both the switch driver and the stmmac driver. Currently, > this driver only allows the PCS to be used by the dual Cortex-A7 > subsystem since the register locking system is not used. > > Signed-off-by: Clément Léger <clement.leger@xxxxxxxxxxx> > Reviewed-by: Vladimir Oltean <olteanv@xxxxxxxxx> Looks good to me, thanks. The only issue I haven't brought up is: > +static int miic_config(struct phylink_pcs *pcs, unsigned int mode, > + phy_interface_t interface, > + const unsigned long *advertising, bool permit) > +{ > + struct miic_port *miic_port = phylink_pcs_to_miic_port(pcs); > + struct miic *miic = miic_port->miic; > + int port = miic_port->port; > + u32 speed, conv_mode, val; > + > + switch (interface) { > + case PHY_INTERFACE_MODE_RMII: > + conv_mode = CONV_MODE_RMII; > + speed = CONV_MODE_100MBPS; > + break; > + case PHY_INTERFACE_MODE_RGMII: > + case PHY_INTERFACE_MODE_RGMII_ID: > + case PHY_INTERFACE_MODE_RGMII_TXID: > + case PHY_INTERFACE_MODE_RGMII_RXID: > + conv_mode = CONV_MODE_RGMII; > + speed = CONV_MODE_1000MBPS; > + break; > + case PHY_INTERFACE_MODE_MII: > + conv_mode = CONV_MODE_MII; > + /* When in MII mode, speed should be set to 0 (which is actually > + * CONV_MODE_10MBPS) > + */ > + speed = CONV_MODE_10MBPS; > + break; > + default: > + return -EOPNOTSUPP; > + } > + > + val = FIELD_PREP(MIIC_CONVCTRL_CONV_MODE, conv_mode) | > + FIELD_PREP(MIIC_CONVCTRL_CONV_SPEED, speed); > + > + miic_reg_rmw(miic, MIIC_CONVCTRL(port), > + MIIC_CONVCTRL_CONV_MODE | MIIC_CONVCTRL_CONV_SPEED, val); > + miic_converter_enable(miic_port->miic, miic_port->port, 1); > + > + return 0; > +} the stting of the speed here. As this function can be called as a result of ethtool setting the configuration while the link is up, this could have disasterous effects on the link. This will only happen if there is no PHY present and we aren't using fixed-link mode. Therefore, I'm willing to get this pass, but I think it would be better if the speed was only updated if the interface setting is actually being changed. So: Reviewed-by: Russell King (Oracle) <rmk+kernel@xxxxxxxxxxxxxxx> -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!