net: phy: at803x: remove at803x_aneg_done()
authorMichael Walle <michael@walle.cc>
Thu, 18 Mar 2021 19:44:31 +0000 (20:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Mar 2021 18:36:42 +0000 (11:36 -0700)
commit5b6b827413e8a86b1f83c3a199fe639c0e292295
tree3ce5b72ea48fbe7841c3362b75df517a7c8b663b
parent497cc00224cfaff89282ec8bfdfb8b797415f72a
net: phy: at803x: remove at803x_aneg_done()

Here is what Vladimir says about it:

  at803x_aneg_done() keeps the aneg reporting as "not done" even when
  the copper-side link was reported as up, but the in-band autoneg has
  not finished.

  That was the _intended_ behavior when that code was introduced, and
  Heiner have said about it [1]:

  | That's not nice from the PHY:
  | It signals "link up", and if the system asks the PHY for link details,
  | then it sheepishly says "well, link is *almost* up".

  If the specification of phy_aneg_done behavior does not include
  in-band autoneg (and it doesn't), then this piece of code does not
  belong here.

  The fact that we can no longer trigger this code from phylib is yet
  another reason why it fails at its intended (and wrong) purpose and
  should be removed.

Removing the SGMII link check, would just keep the call to
genphy_aneg_done(), which is also the fallback. Thus we can just remove
at803x_aneg_done() altogether.

[1] https://lore.kernel.org/netdev/fdf0074a-2572-5914-6f3e-77202cbf96de@gmail.com/

Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c