ixgbe: support link speed auto-negotiation on X550em_x
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Fri, 26 Feb 2016 03:05:29 +0000 (11:05 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 16 Mar 2016 16:10:46 +0000 (17:10 +0100)
commit6be3dfec31dfef9078f1bfc578687902c7af51c0
treedc285689bfa6dd538d291f74aac92e6abd0da431
parent72dec9e37a846204f14b0fa079c4051881edb3c1
ixgbe: support link speed auto-negotiation on X550em_x

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>
doc/guides/rel_notes/release_16_04.rst
drivers/net/ixgbe/ixgbe_ethdev.c
drivers/net/ixgbe/ixgbe_ethdev.h