> >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.

You need to prove this, that the link is not up. Any by link, we mean
both the copper and the SGMII link. 

> at803x_aneg_done() is never called again, and so I think
> the kernel is disabling the interface is some secret way.

Well, the driver has told the core that the link is not up. So the
kernel is waiting for another interrupt indicating the link has gone
up. And probably, this second interrupt never happens.

And it is not disabling the interface. Since the PHY is still down,
the core has not called netif_carrier_on().

    Andrew

Reply via email to