diff mbox series

[net-next] net: phy: at803x: remove at803x_aneg_done()

Message ID 20210318142356.30702-1-michael@walle.cc
State Superseded
Headers show
Series [net-next] net: phy: at803x: remove at803x_aneg_done() | expand

Commit Message

Michael Walle March 18, 2021, 2:23 p.m. UTC
at803x_aneg_done() is pretty much dead code since the patch series
"net: phy: improve and simplify phylib state machine" [1]. Remove it.

[1] https://lore.kernel.org/netdev/922c223b-7bc0-e0ec-345d-2034b796af91@gmail.com/

Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Michael Walle <michael@walle.cc>
---
 drivers/net/phy/at803x.c | 31 -------------------------------
 1 file changed, 31 deletions(-)

Comments

Michael Walle March 18, 2021, 4:38 p.m. UTC | #1
Am 2021-03-18 17:21, schrieb Heiner Kallweit:
> On 18.03.2021 16:17, Vladimir Oltean wrote:
>> On Thu, Mar 18, 2021 at 03:54:00PM +0100, Heiner Kallweit wrote:
>>> On 18.03.2021 15:23, Michael Walle wrote:
>>>> at803x_aneg_done() is pretty much dead code since the patch series
>>>> "net: phy: improve and simplify phylib state machine" [1]. Remove 
>>>> it.
>>>> 
>>> 
>>> Well, it's not dead, it's resting .. There are few places where
>>> phy_aneg_done() is used. So you would need to explain:
>>> - why these users can't be used with this PHY driver
>>> - or why the aneg_done callback isn't needed here and the
>>>   genphy_aneg_done() fallback is sufficient
>> 
>> The piece of code that Michael is removing 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 
>> you
>> have said about it:
>> https://www.spinics.net/lists/stable/msg389193.html
>> 
>> | 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.
>> 
> I don't argue against the change, I just think that the current commit
> description isn't sufficient. What you just said I would have expected
> in the commit description.

I'll come up with a better one, Vladimir, may I use parts of the text
above?

-michael
Vladimir Oltean March 18, 2021, 5:04 p.m. UTC | #2
On Thu, Mar 18, 2021 at 05:38:13PM +0100, Michael Walle wrote:
> Am 2021-03-18 17:21, schrieb Heiner Kallweit:
> > On 18.03.2021 16:17, Vladimir Oltean wrote:
> > > On Thu, Mar 18, 2021 at 03:54:00PM +0100, Heiner Kallweit wrote:
> > > > On 18.03.2021 15:23, Michael Walle wrote:
> > > > > at803x_aneg_done() is pretty much dead code since the patch series
> > > > > "net: phy: improve and simplify phylib state machine" [1].
> > > > > Remove it.
> > > > >
> > > >
> > > > Well, it's not dead, it's resting .. There are few places where
> > > > phy_aneg_done() is used. So you would need to explain:
> > > > - why these users can't be used with this PHY driver
> > > > - or why the aneg_done callback isn't needed here and the
> > > >   genphy_aneg_done() fallback is sufficient
> > >
> > > The piece of code that Michael is removing 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
> > > you
> > > have said about it:
> > > https://www.spinics.net/lists/stable/msg389193.html
> > >
> > > | 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.
> > >
> > I don't argue against the change, I just think that the current commit
> > description isn't sufficient. What you just said I would have expected
> > in the commit description.
>
> I'll come up with a better one, Vladimir, may I use parts of the text
> above?

My words aren't copyrighted, so feel free, however you might want to
check with Heiner too for his part, you never know.
Heiner Kallweit March 18, 2021, 5:09 p.m. UTC | #3
On 18.03.2021 18:04, Vladimir Oltean wrote:
> On Thu, Mar 18, 2021 at 05:38:13PM +0100, Michael Walle wrote:
>> Am 2021-03-18 17:21, schrieb Heiner Kallweit:
>>> On 18.03.2021 16:17, Vladimir Oltean wrote:
>>>> On Thu, Mar 18, 2021 at 03:54:00PM +0100, Heiner Kallweit wrote:
>>>>> On 18.03.2021 15:23, Michael Walle wrote:
>>>>>> at803x_aneg_done() is pretty much dead code since the patch series
>>>>>> "net: phy: improve and simplify phylib state machine" [1].
>>>>>> Remove it.
>>>>>>
>>>>>
>>>>> Well, it's not dead, it's resting .. There are few places where
>>>>> phy_aneg_done() is used. So you would need to explain:
>>>>> - why these users can't be used with this PHY driver
>>>>> - or why the aneg_done callback isn't needed here and the
>>>>>   genphy_aneg_done() fallback is sufficient
>>>>
>>>> The piece of code that Michael is removing 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
>>>> you
>>>> have said about it:
>>>> https://www.spinics.net/lists/stable/msg389193.html
>>>>
>>>> | 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.
>>>>
>>> I don't argue against the change, I just think that the current commit
>>> description isn't sufficient. What you just said I would have expected
>>> in the commit description.
>>
>> I'll come up with a better one, Vladimir, may I use parts of the text
>> above?
> 
> My words aren't copyrighted, so feel free, however you might want to
> check with Heiner too for his part, you never know.
> 
I'm not paid for the content of my mails, so feel free to quote.
diff mbox series

Patch

diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
index c2aa4c92edde..d7799beb811c 100644
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
@@ -751,36 +751,6 @@  static void at803x_link_change_notify(struct phy_device *phydev)
 	}
 }
 
-static int at803x_aneg_done(struct phy_device *phydev)
-{
-	int ccr;
-
-	int aneg_done = genphy_aneg_done(phydev);
-	if (aneg_done != BMSR_ANEGCOMPLETE)
-		return aneg_done;
-
-	/*
-	 * in SGMII mode, if copper side autoneg is successful,
-	 * also check SGMII side autoneg result
-	 */
-	ccr = phy_read(phydev, AT803X_REG_CHIP_CONFIG);
-	if ((ccr & AT803X_MODE_CFG_MASK) != AT803X_MODE_CFG_SGMII)
-		return aneg_done;
-
-	/* switch to SGMII/fiber page */
-	phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr & ~AT803X_BT_BX_REG_SEL);
-
-	/* check if the SGMII link is OK. */
-	if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) {
-		phydev_warn(phydev, "803x_aneg_done: SGMII link is not ok\n");
-		aneg_done = 0;
-	}
-	/* switch back to copper page */
-	phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr | AT803X_BT_BX_REG_SEL);
-
-	return aneg_done;
-}
-
 static int at803x_read_status(struct phy_device *phydev)
 {
 	int ss, err, old_link = phydev->link;
@@ -1198,7 +1168,6 @@  static struct phy_driver at803x_driver[] = {
 	.resume			= at803x_resume,
 	/* PHY_GBIT_FEATURES */
 	.read_status		= at803x_read_status,
-	.aneg_done		= at803x_aneg_done,
 	.config_intr		= &at803x_config_intr,
 	.handle_interrupt	= at803x_handle_interrupt,
 	.get_tunable		= at803x_get_tunable,