i40e: Add support for ethtool -s <interface> speed <speed in Mb>
authorMateusz Palczewski <mateusz.palczewski@intel.com>
Wed, 11 May 2022 10:21:28 +0000 (12:21 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 21 Jun 2022 20:50:38 +0000 (13:50 -0700)
commit7f72d923149c6355285fbd315c3d81e50993cc31
tree90da15d3cb94ecea4378cb4c777748d20eff239d
parent8720bd951b8e8515ffd995c7631790fdabaa9265
i40e: Add support for ethtool -s <interface> speed <speed in Mb>

Add ability to change speed through ethtool -s <interface> speed <speed in Mb>
Driver advertises all link modes that support requested speed.
Autoneg must be set off e.g.:
ethtool -s <interface> autoneg off speed <speed in Mb>.

Add helper function that translate speed in Mb to
enum i40e_aq_link_speed and compare it to supported speeds from
given ethtool_link_ksettings. Add in i40e_set_link_ksettings hold
for requested speed and set copy_ks.base.speed to safe_ks.base.speed
to be sure that user is not changing unsupported setting.
In i40e_speed_to_link_speed compare requested speed with supported
speeds. Set speed to requested speed.

Signed-off-by: Norbert Zulinski <norbertx.zulinski@intel.com>
Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
Tested-by: Dave Switzer <david.switzer@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/i40e/i40e_ethtool.c