]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit2cbbea6135750d96596c30d0996344db5896b723
tree3ce5b72ea48fbe7841c3362b75df517a7c8b663b
parent95487a8499599cfd3589bafc8a7e7f3752396e59
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