Re: [PATCH v2] net: mvneta: Fix Serdes configuration for 2.5Gbps modes

From: Russell King - ARM Linux admin
Date: Fri Jun 12 2020 - 08:12:47 EST


On Fri, Jun 12, 2020 at 02:06:04PM +0200, Sascha Hauer wrote:
> And here is the same patch which applies on master and the net tree.
> It works as expected on my Armada XP in 2.5Gbps mode. Provided you are
> happy with the patch I can send it as a formal patch on monday if by
> then you haven't done that already.

As mentioned in one of my replies, there's a bug the patch I sent...

> @@ -3533,9 +3535,6 @@ static int mvneta_comphy_init(struct mvneta_port *pp)
> {
> int ret;
>
> - if (!pp->comphy)
> - return 0;
> -
> ret = phy_set_mode_ext(pp->comphy, PHY_MODE_ETHERNET,
> pp->phy_interface);

mvneta_comphy_init() needs to be passed the interface mode, and pass it
thrugh to phy_set_mode_ext().

> if (ret)
> @@ -3544,11 +3543,49 @@ static int mvneta_comphy_init(struct mvneta_port *pp)
> return phy_power_on(pp->comphy);
> }
>
> +static int mvneta_config_interface(struct mvneta_port *pp,
> + phy_interface_t interface)
> +{
> + int ret = 0;
> +
> + if (pp->comphy) {
> + if (interface == PHY_INTERFACE_MODE_SGMII ||
> + interface == PHY_INTERFACE_MODE_1000BASEX ||
> + interface == PHY_INTERFACE_MODE_2500BASEX) {
> + ret = mvneta_comphy_init(pp);

and this needs to be:
ret = mvneta_comphy_init(pp, interface);

Otherwise, the comphy uses the _old_ interface mode each time this
function is called.

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!