6be3dfec31
Normally the auto-negotiation is supported by FW. SW need not care about that. But on x550em_x, FW doesn't support auto-neg. As the x550em_x ports are 10G, if we connect the port will a peer which is 1G, the link will always be down. We need support auto-neg by SW to avoid this link down issue. As we already have the code to handle the link speed setting, what we need is a trigger. When the advertised link speed changes, a PHY interruption will be triggered. So, we should handle this interrupt and call ixgbe_handle_lasi to set the link speed correctly. Please be aware it's working when auto-neg is on. If the auto-neg of the peer port is turned off and its speed is indicated manually, we should also set the speed of our own port manually. Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Acked-by: Shaopeng He <shaopeng.he@intel.com>