[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a88a111d-5e3a-0999-14ef-0ada06febb3f@codeaurora.org>
Date: Wed, 24 May 2017 08:29:03 -0500
From: Timur Tabi <timur@...eaurora.org>
To: Matthias May <matthias.may@...atec.com>,
Andrew Lunn <andrew@...n.ch>
Cc: 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 5/24/17 2:18 AM, Matthias May wrote:
> With the patch: When the copper side is seen as up, it also checks if aneg of the SGMII link is done.
> As far as i know SGMII can not be run without aneg, since it is always Gbit with aneg mandatory.
> If SGMII aneg is not done, then, well aneg is not done and thus 0 is returned.
>
> Internally we have this patch extended so we don't only report that aneg is not done but also reset the link.
> Eventually aneg on the SGMII side can be completed and the link comes up.
I would really like to test this patch.
> Why do you think that frames are able to go through when aneg is reported as not done by the PHY?
I have two theories:
1. The warning message is bogus. The link actually is okay, but the
driver thinks that it isn't.
2. The link is not okay, but it automatically fixes itself soon after
the at803x_aneg_done() finishes.
> Since aneg is mandatory for SGMII this can as well be seen as "link not up", not?
The problem is that even though the link is up, the driver has returned
"0", so the kernel thinks that autonegotiation has not finished.
at803x_aneg_done() is never called again, and so I think the kernel is
disabling the interface is some secret way.
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the
Code Aurora Forum, hosted by The Linux Foundation.
Powered by blists - more mailing lists