[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170802025847.GB8415@lunn.ch>
Date: Wed, 2 Aug 2017 04:58:47 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Timur Tabi <timur@...eaurora.org>
Cc: "David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH 1/2] [for 4.13] net: qcom/emac: disable flow control
autonegotiation by default
On Tue, Aug 01, 2017 at 07:56:31PM -0500, Timur Tabi wrote:
> On 8/1/17 6:15 PM, Andrew Lunn wrote:
> >Pause frames are something you can auto-negotiate at the PHY
> >level. Should you also be clearing some bits in the phydev, so the
> >peer knows pause frames are not supported?
>
> When pause frame autonegotiation is enabled in the driver, that only means
> that the driver looks at what the PHY has autonegotiated, and then
> configures the MAC to match that.
>
> The driver doesn't touch the PHY at all. It leaves all that to phylib.
>
> Now if autonegotiation is disabled in the driver, then it just hard-codes
> those TX/RX settings in the driver. Are you saying I should program the PHY
> at the point to disable autonegotiation on the PHY level? If so, then I
> don't know how to do that. I just assumed that the MAC never tells the PHY
> what to do.
Documentation/networking/phy.txt says:
Pause frames / flow control
The PHY does not participate directly in flow control/pause frames except by
making sure that the SUPPORTED_Pause and SUPPORTED_AsymPause bits are set in
MII_ADVERTISE to indicate towards the link partner that the Ethernet MAC
controller supports such a thing. Since flow control/pause frames generation
involves the Ethernet MAC driver, it is recommended that this driver takes care
of properly indicating advertisement and support for such features by setting
the SUPPORTED_Pause and SUPPORTED_AsymPause bits accordingly. This can be done
either before or after phy_connect() and/or as a result of implementing the
ethtool::set_pauseparam feature.
So just check if the MAC driver is setting SUPPORTED_Pause and
SUPPORTED_AsymPause.
Andrew
Powered by blists - more mailing lists