[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170524140929.GC26577@lunn.ch>
Date: Wed, 24 May 2017 16:09:29 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Timur Tabi <timur@...eaurora.org>
Cc: Matthias May <matthias.may@...atec.com>,
Zefir Kurtisi <zefir.kurtisi@...atec.com>,
netdev@...r.kernel.org, f.fainelli@...il.com,
David Miller <davem@...emloft.net>,
Manoj Iyer <manoj.iyer@...onical.com>, jhugo@...eaurora.org
Subject: Re: [PATCH 2/2] at803x: double check SGMII side autoneg
On Wed, May 24, 2017 at 08:48:04AM -0500, Timur Tabi wrote:
> On 5/24/17 8:40 AM, Andrew Lunn wrote:
>
> >You need to prove this, that the link is not up. Any by link, we mean
> >both the copper and the SGMII link.
>
> I can post the log of my iperf run showing that the, when
> at803x_aneg_done() returns zero, no packets can go through. And
> then after I change at803x_aneg_done() so that it returns
> BMSR_ANEGCOMPLETE, then packets do go through. Is that the proof
> you're looking for?
No. I would like to see the status of the copper side and the status
of the SGMII side, at the point at803x_aneg_done() is called.
If the copper side is up, but the SGMII side is down, returning 0 is
correct.
> Exxactly. That's because the link IS up, and so there is no
> opportunity to receive another interrupt.
It could be, the copper side is up, but the SGMII side is down, at the
point at803x_aneg_done() is called. So it is correctly returning
0. Sometime later the SGMII side goes up, but there is not a second
interrupt. Hence the phy core does not know that the full, 2 stage MAC
to PHY to peer PHY link is now up.
Andrew
Powered by blists - more mailing lists