mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Huazhong Tan <tanhuazhong@huawei.com>
Cc: f.fainelli@gmail.com, hkallweit1@gmail.com, davem@davemloft.net,
	kuba@kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Guangbin Huang <huangguangbin2@huawei.com>
Subject: Re: [PATCH net] net: phy: fix save wrong speed and duplex problem if autoneg is on
Date: Sat, 27 Feb 2021 01:53:53 +0100	[thread overview]
Message-ID: <YDmYIb0O5DZkL+X3@lunn.ch> (raw)
In-Reply-To: <1614325482-25208-1-git-send-email-tanhuazhong@huawei.com>

On Fri, Feb 26, 2021 at 03:44:42PM +0800, Huazhong Tan wrote:
> From: Guangbin Huang <huangguangbin2@huawei.com>
> 
> If phy uses generic driver and autoneg is on, enter command
> "ethtool -s eth0 speed 50" will not change phy speed actually, but
> command "ethtool eth0" shows speed is 50Mb/s because phydev->speed
> has been set to 50 and no update later.
> 
> And duplex setting has same problem too.
> 
> However, if autoneg is on, phy only changes speed and duplex according to
> phydev->advertising, but not phydev->speed and phydev->duplex. So in this
> case, phydev->speed and phydev->duplex don't need to be set in function
> phy_ethtool_ksettings_set() if autoneg is on.
> 
> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>

I'm not sure, but i think this happens after

commit 51e2a3846eab18711f4eb59cd0a4c33054e2980a
Author: Trent Piepho <tpiepho@freescale.com>
Date:   Wed Sep 24 10:55:46 2008 +0000

    PHY: Avoid unnecessary aneg restarts
    
    The PHY's aneg is configured and restarted whenever the link is brought up,
    e.g. when DHCP is started after the kernel has booted.  This can take the
    link down for several seconds while auto-negotiation is redone.
    
    If the advertised features haven't changed, then it shouldn't be necessary
    to bring down the link and start auto-negotiation over again.
    
    genphy_config_advert() is enhanced to return 0 when the advertised features
    haven't been changed and >0 when they have been.
    
    genphy_config_aneg() then uses this information to not call
    genphy_restart_aneg() if there has been no change.

Before then, i think autoneg was unconditionally restarted, and so the
speed would get overwritten when autoneg completed. After this patch,
since autoneg is not being changed when only speed is set, autoneg is
not triggered.

	Andrew

  parent reply	other threads:[~2021-02-27  0:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-26  7:44 Huazhong Tan
2021-02-26 23:56 ` Jakub Kicinski
2021-02-27  1:27   ` Huazhong Tan
2021-02-27  0:53 ` Andrew Lunn [this message]
2021-02-27  1:27   ` Huazhong Tan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YDmYIb0O5DZkL+X3@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=huangguangbin2@huawei.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=tanhuazhong@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®