Re: [PATCH v2 net] Add genphy_c45_config_aneg() function to phy-c45.c

From: David Miller
Date: Tue Aug 27 2019 - 18:01:05 EST

From: Marco Hartmann <marco.hartmann@xxxxxxx>
Date: Wed, 21 Aug 2019 11:00:46 +0000

> Commit 34786005eca3 ("net: phy: prevent PHYs w/o Clause 22 regs from calling
> genphy_config_aneg") introduced a check that aborts phy_config_aneg()
> if the phy is a C45 phy.
> This causes phy_state_machine() to call phy_error() so that the phy
> ends up in PHY_HALTED state.
> Instead of returning -EOPNOTSUPP, call genphy_c45_config_aneg()
> (analogous to the C22 case) so that the state machine can run
> correctly.
> genphy_c45_config_aneg() closely resembles mv3310_config_aneg()
> in drivers/net/phy/marvell10g.c, excluding vendor specific
> configurations for 1000BaseT.
> Fixes: 22b56e827093 ("net: phy: replace genphy_10g_driver with genphy_c45_driver")
> Signed-off-by: Marco Hartmann <marco.hartmann@xxxxxxx>

Andrew, gentle ping to respond to Heiner who said:

> For me this patch would be ok, even though this generic config_aneg
> doesn't support 1000BaseT.
> 1. The whole genphy_c45 driver doesn't make sense w/o a config_aneg
> callback implementation.
> 2. It can serve as a temporary fallback for new C45 PHY's that don't
> have a dedicated driver yet.
> 3. We may have C45 PHYs not supporting 1000BaseT (e.g. T1).
> Andrew?